I'm feeling so remote!



To expedite my development, I visited the Lizard Lounge (EFM32 Community by Energy Micro) and found an IR Remote Control project that works with a Nikon D90 Camera.



This project is for a not specifically for the STK3700 so it required some work to get it fully working.

For the STK3700 the IR LED need to be connected to pins 4 (PD9-anode) and 6 (PD10-cathode).

These just happen to be located in the exact relative location on each PCB.


I noticed this project’s structure was a little different to that used in the STK3700 examples.

It had no BSP group and it had different configuration settings.


After some experimentation I have devised an easy method to import the project.

The procedure is basically taking the fully functional blink.eww template for the STK3700 and inserting the new code.

The new code may require other prerequisites such as emlib and driver files thus these too require insertion into the project.

(.h header file references magically become available upon these files’ insertion and do not require explicit insertion.)


(The hard way which I also got going is to change all of the settings in the ir_remote.eww and reconfigure them for the EFM32GG990GF1024 target . This is considerably more tedious and prone to errors.)


The easy way is as follows;


     1. Clone the blink example project by copying and pasting all of its files to a folder and renaming the folder with a new name.


     2. Replace blink.c.

a.     Open the blink.eww file (from the new folder)

b.     Remove all text from blink.c

  (You can perform a Project, Clean and confirm that all related files are removed from the project.)

c.     Insert the text from the ir_remote.c program into blink.c


     3. Insert any required additional emlib drivers.

a.     em_lcd.c

b.     em_rtc.c


     4. Create a project group in the workbench called Drivers and add any required additional drivers.

a.     Add segmentlcd.c


     5. Add a C compiler pre-processor include path to find the additional drivers.

a.     On project Explorer, right click blink – Debug, Options, C/C++ Compiler, Preprocessor Tab, Additional Include Libraries:, add



     6. (Optional) Rename all occurrences of blink to a more suitable label.


Now it is ready to build, download and test.

To check that it is all working;


     1. I used a red LED as a rough guide to see if any output is present.


     2. I pressed the buttons to ensure that their ISRs (Interrupt Service Routine) were working properly.