IF150 Project Build
Home Page     IF150 Commands

IF150 Project Build

So you fancy building this suggested design.  Great!
Before you/we get started I must bring your attention to the following legal notice.


This IF150 Interface suggested design is exactly this.  It is a design solution suggested by Nick Bailey for which he takes no legal liability makes no statements about any safety or RFI emissions conformance and gives no warranty about performance and its suitability for the intended application.  This suggested design is offered "AS-IS" and anybody who wishes to implement and use this design does so entirely at their own risk and accepts full responsibility and liability for their actions in implementing and using the suggested design and any consequential events or matters arising from their actions.  It is the sole and total responsibility of anybody using this design to fully satisfy themselves that the design is safe to use and the intended application is appropriate.   In your use of this design you are also agreeing to "save harmless" ("hold harmless")  Nick Bailey, his family, any family business and anyone else personally associated with him.

You have hopefully also read the main IF150 web page so you should have a pretty good idea of what you are building.  If you have not done so then you are strongly recommended to do so.  

Building the Hardware

Safety Note

Building this suggested design / project requires the use of a soldering iron, wire cutters and drill.   Eye Safety Goggles or Safety Glasses should be used at all times during the construction process.

Required Skills

Skill level for this project is modest.  You should be able to read and understand circuit diagrams, identify electronic components and be able to safely use a soldering iron, wire cutters and a hand or electric drill.

Remember also the Legal Notice requirement above and specifically the "It is the sole and total responsibility of anybody using this design to fully satisfy themselves that the design is safe to use and the intended application is appropriate."  If you can not do this then do NOT proceed any further. 

Required Tools

Required Parts

Below is a table of all the required and optional parts for this suggested design and project build.  Some parts are optional because you may want to do your own packaging and build your own opto-isolation and level shifting circuit board using strip board or your own custom PCB (printed circuit board).  If you go for all the listed parts then the total hardware cost will be around 40 UK pounds, 50 US dollars or 45 Eros.  This price is a guide and you should verify the cost and availability of the parts in your location/country.

Part Description
Maker's Part Number
Project / Circuit Reference
Arduino Uno (R3)
Arduino Uno (R3) Module
Arduino Proto Shield Rev3 PCB only A000082
Opto-isolation & Level Shifting Board
Arduino Case
Arduino Case
USB 2.0 A to B Cable
any USB 2.0 A-B cable
PC to Interface Cable

3.5mm jack plug
Interface to HF-150 cable
500mm of single core screened cable
Interface to HF-150 cable

Opto-Isolator - 4 Pin DIL
Transistor, NPN, 45Vceo, 100mA, hfe 250,TO92  ** see note below
Resistor 1K, 0.25W, metal or carbon film any
Resistor 1K, 0.25W, metal or carbon film any
Resistor 10K, 0.25W, metal or carbon film any
Resistor 150R, 0.25W, metal or carbon film any

Resistor 1K, 0.25W, metal or carbon film any
R5 (for optional status LED)
LED, 5mm, single colour, T-13/4 package
LED1 (optional status LED)
Sleeving for LED leads to create 10mm standoffs
led standoff support

Pin Strip - 0.1 inch pitch - 36 way
for connecting boards together
Small cable ties
for securing cable / strain relief
Pretty IF150 Label to your own design


** Note - It appears that the BC550C transistor I have chosen, which is readily available in the UK, is not always available in other countries.  To find possible alternatives you may wish to try the following Web URL, http://alltransistors.com/transistor.php?transistor=23421 , where you can find an "equivalents" link for the BC550C.

If you use an alternative transistor and it works then maybe you might like to let me know so I can  provide a "Known Working" alternative  list.

Opto-Isolator and Level Shifter Assembly

Below are three pictures of the circuit diagram and the top and bottom sides of the circuit board using my suggested layout on the Arduino Proto Shield R3 board.  You can of course use any strip board or custom PCB but there are two points to make specific note of.
  1. This board / circuit has to make connection with the Arduino Uno Board on Pins 9, 12 and GND (ground).  My suggested design is the "piggy back" Proto Shield layout.  You may wish to have flying leads connecting the boards in your own packaging but you must connect to Pins 9, 12 and GND on the Arduino Uno.

  2. My suggested design "piggy back" layout allows for the Status LED (LED1) to be mounted on 10mm standoffs and is specifically located to allow the Led to protrude through a custom drilled hole in the Arduino Case upper half.

Unlike "strip board" the Proto Shield board generally has no interlinking of 'lands' except around the DIL section and the I/O pins.  This means that some connections require wire 'links' to be added.  There is no need to buy solid core link wire as the cut off ends from the components is more than sufficient for the job.
Study the circuit and board pictures carefully.  You will see two wire links on circuit board topside and some linked solder joints on the circuit board bottom (solder) side. 
The screened cable can be bolder directly to the circuit board, onto two pins, or you can have a small two pin connector of your choice.  Just bear in mind that the cable has to exit from a hole in the case lower half.
On the HF-150 3.5mm jack plug end the core of the cable should connect to the tip of the jack plug and the screen to the body of the jack plug.
It is strongly recommended that you place your components on the board, fold and cut the leads so the component leads physically join correctly with each other BEFORE soldering!

Circuit Diagram

Circuit Diagram

Circuit Board Top Side

Circuit Board Top Side

Circuit Board Bottom Side

Circuit Board Bottom Side

Case Construction / Assembly

The Arduino case comes in two parts, a case upper and a case lower half.  The two halves of the case simple fit together with the long plastic support pillars in the lower half of the case locating into the top half of the case.
The support pillars are also used to locate and support the Arduino cards within the case.

Depending on whether you implement the STATUS led you will only have to drill one or two holes in the case.  One hole in the end of the case lower half and one hole in the top of the case upper half.
Below is a picture of the case lower half and circuit boards.  NOTE how the screened cable has been carefully routed around the support pillars and tie-wrapped to provide cable strain relief. 
In the pictures below you will see that I have drilled the hole for the cable in the middle of the end wall of the case lower half.  As an alternative you can put the case lower and upper halves together and then carefully drill at the joint line between the halves.  If you do this then it will not be necessary to thread the cable through the hole before soldering the end connections.

Case Base and Cards

Case base and cards before

Cards assembled in case

Drilling LED Hole in Case Top

The final construction step is to drill a 5.5mm hole in the upper half of the case to allow the Status Led to protrude through it so it is visible.   
I made an accurately measured cardboard template (anticipating making multiple units) but the procedure below is sufficient to achieve good alignment. 
  1. Assemble cards into the case base as in the above picture.
  2. Check that the LED is standing vertically (in the above picture the LED is leaning to the right so you can see the 10mm standoffs).
  3. Place a small spot of paint or coloured fluid on the tip of the LED.
  4. Slowly and gently align case top and start to lower the top cover over the base.
  5. As you bring the parts together you will find that the support legs will engage in the case top.
  6. Continue to slowly lower the case top keeping the two case halves parallel.
  7. Before the cases meet the painted tip of the LED will touch the inside of the case top - STOP
  8. Gently lift case top clear and turn over.  You should see where the LED touched the case top.
  9. Mark the case top where the LED touched it.
  10. Quickly remove paint / fluid from top of LED
  11. Drill 5.5mm diameter hole in case top
  12. Repeat step 5 and 6 above.  LED should gently self align and emerge through the top of the case cover and the case top and bottom halves come together.

Final Checks

Before connecting the USB lead and thus power you should carefully check the Opto-Isolator and Level Shifting Board on both sides for correct component values, correct connections and unwanted solder splashes that may be present.
This checking can be done visually with the aid of a magnifying glass but it is strongly recommended that a multimeter is also used.

Installing Software/Firmware

The software/firmware installation has two steps to it:
  1. Installing the Arduino.inf and Arduino.cat files on your computer (PC) (Windows only)
  2. Installing the Firmware onto the Arduino Uno Board

Arduino.INF and Arduino.CAT Files

On the Windows operating system a driver .INF file is required to allow Windows to enumerate/recognise the Arduino hardware board.  On Windows 8, 8.1 and 10 then drivers must also be digitaly signed.  A signed driver will also come with a .CAT file.  No other files or drivers have to be installed on your PC.
The .INF file is called arduino.inf and the .CAT file is called arduino.cat. and are available from my website or are available as part of the Arduino environment.
Once you have downloaded either the .INF and .CAT files from my website, or the whole Arduino environment software, then you need to follow these Install the driver instructions (see item 4).

NOTE1 - If you downloaded the .INF and .CAT files from my website then you will need to navigate to the folder where you downloaded the files to.

NOTE2 - You will not be able to upload/install the IF150 Firmware onto your Arduino board untill your hardware is correctly recognised/enumerated.

IF150 Firmware (© N R Bailey 2012)

My firmware is required to be installed on the Arduino Uno R3 board to complete this project.  The firmware is supplied in object code only form.

The current Firmware command details can be found in IF150 Commands.

I make no excuses but to access my firmware you will have to first register.  Registration is required for the following reasons:
  1. I would like to know how many people are actually implementing and using this suggested design.  If you have no intention of implementing/using this suggested design then I would ask you to not register.
  2. The firmware is subject to a simple License Agreement and by registering for access you will be legally agreeing to accept and be legally bound by the License Agreement.
  3. Having registered then I know you are a genuine user and I will en devour to help you in any way I can with this project.  I have no spare time to waste so want to ensure my time is given to the right people.
  4. Finally,  I have invested not only development hardware costs in several prototype solutions that I have build and tested, but also many many hours in developing the required firmware.

Obtaining the Firmware

The firmware can be downloaded from here.  

Installing the Firmware

The Firmware you chose to download will arrive in a ZIP file.
If I have provided an MD5 checksum for either the ZIP file or any of the contents then you should verify that the checksums match those that I have published.
NOTE! On Windows you will not be able to install the firmware until you have installed the above Arduino.INF and Arduino.CAT files and Windows has recognised your hardware.
  1. Download the Firmware ZIP file to a directory of your choosing. (check MD5 checksum if available)
  2. Un-zip the contents into a directory of your choosing. (check any MD5 checksums if available)
  3. Plug your Arduino Board / IF150 Interface into your PC and wait for it to be recognised
  4. Locate the COM port your Arduino Board / IF150 Interface has been installed on (in Windows go to Control Panel / Device Manager / Ports  and look for 'Arduino UNO R3' and note the 'COMn' or 'COMnn' number) 
  5. Edit the if150_load.cmd file and change the -P comx to -Pcomn where n is the single or double digit port number for your Arduino device
  6. Open a command line window on your PC and navigate to the folder where your extracted the ZIPed files to
  7. Type the command if150_load.cmd.  You may be prompted by your operating system to allow this action.  Respond accordingly.
  8. Observe any error messages on the command window console.  Hopefully you will have none.
If you are a command line guru then for the Arduino Uno R3 then either of these two commands should work:

avrdude -c arduino -p ATMEGA328P -P comx -b 115200 -U flash:w:if150.hex

avrdude -F -V -c arduino -p ATMEGA328P -P comx -b 115200 -U flash:w:if150.hex     In either case you will need to replace -P comx with the correct port number.

Testing the Firmware

To test the Arduino board once you have uploaded the Firmware we will use the Termite terminal program that was contained in the Firmware package you downloaded.

Follow the following steps:
  1. In the open command line window enter the command termite and the Termite user interface window will open
  2. Click the settings tab at the top of the window
    1. Change to settings to:Port n where n is the single or double digit port number for your Arduino device
    2. Baud Rate 1200
    3. Data bits 8
    4. Stop Bits 1
    5. Parity None
    6. Flow Control None
    7. Forward None
    8. Transmitted Text Append CR
    9. Local Echo - select/tick
  3. Now we will enter some commands in the command entry line at the bottom of the window
Enter help
You should see response text similar to

 IF150 Control Interface   (C) N. R. Bailey 2012
Version V1.0.5P  04 Jul 2012
Enter ident
You should see response text similar to

These two commands will confirm that the Arduino board is responding correctly to commands.

We now need to test that the HF150 receiver responds to Lowe IF-150 commands.  Ensure the receiver is on and the interface is correctly plugged in.

Enter mod usb
The receiver should change mode to USB
Enter mod am
The receiver should change mode to AM
Enter frq 1000
The receiver should tune to 1000 kH
As you enter each command you will see that the Status LED will illuminate while the command is being processed.  If the LED remains illuminated then this means that the command you entered was not recognised/supported.  Try entering boo.  The LED should remain illuminated until the next command is successfully processed.  So if you enter help or ? then LED should turn out after the command is processed.
Hopefully the above all worked OK 
Now it is time to try my free HF150 Control Program.

Problems You Can't Resolve

I hope this little section is never required but if it is I'm here to help you as best as I can.  You just need to Email me (see my contact information at the bottom is this page) with exactly what problem you have and what steps/debug process you have already tried.  I do not guarantee to fix and resolve your issue but I will try my best.  

Feedback / Testemonials

If you have built this suggested design and project (or your own custom variation) then I would appreciate any feedback you may have, GOOD or BAD.
With feedback I can improve the project build by making sure others benefit from your experience.
If you have a good experience and success to report then I can (with your permission) also post your success which may encourage others to have a go.  


I would loved to have offered an IF150 Interface for sale.  However CE and UL Approvals made this not possible.  Hopefully I have provided enough information here for you to create your own IF150 Interface, have a little bit of fun, and then enjoy and appreciate your own work. 

Top Of Page
Home Page     Site Index     About Me     Privacy     Contact Us     Marmotta PhotoArt
© Nick Bailey 2012-2024