The image below is a link. Try to click on it.

Crypto Authentication USB Dongle with ECDSA and more

So, you have something to hide? 🙂

The Irdroid’s Crypto authentication USB dongle is a device, that connect to your PC with Linux and allows you to digitally sign / verify / authenticate Documents using its built-in hardware crypto element, based on ATECC608B from Microchip.

What it can be used for?

  • SSH authentication with a remote system via ECDSA keypairs ( your private key never leaves the hardware secure element e.g the AuthKi)
  • ECDSA elliptic curve authentication with git / GitHub ( your private key never leaves the hardware secure element e.g the AuthKi)
  • Digital Signature and Verification of files via Ellliptic Curve Algorithms (ECDSA/ECDH)
  • Developing Secure Crypto Wallets for Bitcoin / Ethereum
  • Experimenting with the Microchip’s Cryptoauthlib for interfacing with the device.

For more information about the Project, please visit – https://irdroid.github.io/authKi/ or the project repository in GitHub

 

 

 

 

The image below is a link. Try to click on it.

Battery powered infrared devices considerations and design using open source tools and hardware

Designing battery powered devices that have to run for years on batteries is a challenge. If you look around you will see that most of the home appliances such as TVs, Music devices, Aircons, Heaters, Fans and so on are controlled using battery powered remote controls. The remote controls used with these devices should run for long periods of time on batteries.

 How is this achieved? Can we design a embedded custom remote control, by using open source hardware and software tools?

The Answer is Yes. We can use off-the-shelf low energy power consumption microcontrollers which will allow us to run on batteries for long periods of time. In this post we will review the possibilities with Atmel Atmega328P microcontroller, running at 16MHz and powered by 3.3V. We will also review and measure some off-the-shelf open source hardware development boards like Arduino, Olimexino etc.

 

We will review the following:

  •  Breadboarded Atmega328
  • Arduino UNO R3 Atmega328

  • Olimexino 328 uses Atmega328

 

According to the MCU specification the microcontroller supports sleep modes with minimal power consumption (Approximately 0.1uA).

 For the measurements we will use the BRYMEN 867s Digital Multimeter.

According to the MCU Specification we will have to power the Atmega with 3.3V in order to benefit from the lower current/power consumption. For the breadboarded version,we have just the Microcontroller, a quartz and two caps we are expecting to get the lowest result/ measurement.

 

In terms of software for our tests we will use a test program that will put the MCU in sleep mode, written for Arduino . The test program does really a simple thing – when the MCU is awaken / not in sleep mode it flashes the board LEDs for 5 times it waits for 10 seconds, then the microcontroller is forced to enter sleep mode. The sleep mode can be interrupted by grounding the INT0 pin of the MCU. The idea is that when in sleep mode all MCU peripheral and core is switched off and therefore we have minimal power consumption. Nothing is running in sleep mode, except for the logic that wakes up the MCU. The main program of the MCU is executed every time waken up, it does its thing and then it goes to sleep after a user defined period of time (usually several seconds after it performs a task.)

 

We have the following listing:

 /*———————————————————————-*

* Sleep demo for ATmega328P.                                           *

* Wire a button from digital pin 2 (INT0) to ground.                   *

* Wire an LED with an appropriate dropping resistor from pin D13 to    *

* ground.                                                              *

* Pushing the button wakes the MCU.                                    *

* After waking, the MCU flashes the LED, then waits 10 seconds before  *

* going back to sleep.                                                 *

*                                                                      *

* Jack Christensen 07May2013                                           *

*                                                                      *

* Tested with Arduino 1.0.5 and an Arduino Uno.                        *

* Test conditions for all results below:                               *

*   5V regulated power supply, fed to the Vin pin                      *

*   16MHz system clock                                                 *

*   Fuse bytes (L/H/E): 0xFF / 0xDE / 0x05                             *

*   Optiboot bootloader                                                *

*                                                                      *

* Uno R1                                                               *

*   38mA active, 26mA with MCU in power-down mode.                     *

*                                                                      *

* Uno SMD edition                                                      *

*   42mA active, 31mA power-down.                                      *

*                                                                      *

* Adafruit Boarduino                                                   *

*   Power select jumper set to “USB”, USB (FTDI) not connected.        *

*   15mA active, 3mA power-down.                                       *

*                                                                      *

* Adafruit Boarduino without power LED                                 *

*   12mA active, 0.1µA power-down.                                     *

*                                                                      *

* Breadboarded ATmega328P-PU                                           *

*   12mA active, 0.1µA power-down.                                     *

*                                                                      *

* This work is licensed under the Creative Commons Attribution-        *

* ShareAlike 3.0 Unported License. To view a copy of this license,     *

* visit http://creativecommons.org/licenses/by-sa/3.0/ or send a       *

* letter to Creative Commons, 171 Second Street, Suite 300,            *

* San Francisco, California, 94105, USA.                               *

*———————————————————————-*/

#include <avr/sleep.h>

 

const int LED = 13;                          //LED on pin 13

const unsigned long KEEP_RUNNING = 10000;    //milliseconds

 

void setup(void)

{

   //to minimize power consumption while sleeping, output pins must not source

   //or sink any current. input pins must have a defined level; a good way to

   //ensure this is to enable the internal pullup resistors.

 

   for (byte i=0; i<20; i++) {    //make all pins inputs with pullups enabled

       pinMode(i, INPUT_PULLUP);

   }

 

   pinMode(LED, OUTPUT);          //make the led pin an output

   digitalWrite(LED, LOW);        //drive it low so it doesn’t source current

}

 

void loop(void)

{

   for (byte i=0; i<5; i++) {     //flash the LED

       digitalWrite(LED, HIGH);

       delay(100);

       digitalWrite(LED, LOW);

       delay(100);

   }

   delay(KEEP_RUNNING);           //opportunity to measure active supply current

   digitalWrite(LED, HIGH);       //one blink before sleeping

   delay(100);

   digitalWrite(LED, LOW);

   goToSleep();

}

 

void goToSleep(void)

{

   byte adcsra = ADCSRA;          //save the ADC Control and Status Register A

   ADCSRA = 0;                    //disable the ADC

   EICRA = _BV(ISC01);            //configure INT0 to trigger on falling edge

   EIMSK = _BV(INT0);             //enable INT0

   set_sleep_mode(SLEEP_MODE_PWR_DOWN);

   cli();                         //stop interrupts to ensure the BOD timed sequence executes as required

   sleep_enable();

   //disable brown-out detection while sleeping (20-25µA)

   uint8_t mcucr1 = MCUCR | _BV(BODS) | _BV(BODSE);

   uint8_t mcucr2 = mcucr1 & ~_BV(BODSE);

   MCUCR = mcucr1;

   MCUCR = mcucr2;

   //sleep_bod_disable();           //for AVR-GCC 4.3.3 and later, this is equivalent to the previous 4 lines of code

   sei();                         //ensure interrupts enabled so we can wake up again

   sleep_cpu();                   //go to sleep

   sleep_disable();               //wake up here

   ADCSRA = adcsra;               //restore ADCSRA

}

 

//external interrupt 0 wakes the MCU

ISR(INT0_vect)

{

   EIMSK = 0;                     //disable external interrupts (only need one to wake up)

}

 

The code will flash the board leds 5 times, wait for 10 seconds, to allow us to make a measurement and then it will force the MCU to enter sleep mode.

 

We have tested breadboarded Atmega328, Arduino UNO R3 and Olimexino 328, as you can see from the code header, other people has tested and mesured also for other boards , based on Atmega328.

 

The results for the breadboarded Atmega328 are stunning – 0.1uA in sleep mode, though there is nothing else than the microcontroller, a quartz and 2 caps,powered by 3.3V. (the first pretendent )

 

The second in this list is the Olimexino 328 , running at 16MHz, powered by 3.3V. The board is designed with on board charger for connecting external batteries. In a running mode the total power consumption at 3.3V was about 7ma , in sleep mode this board consumes approximately 200uA, which makes it usable for battery powered devices. (Our second pretendent)

 

And finally the Arduino UNO R3 gave us high power consumption both active and sleep modes (  38mA active, 26mA with MCU in power-down mode ) which renders it unusable for designing battery powered infrared applications.

 

Conclusion:

 The user should either make a custom design , using the Atmega328 and create a design with low energy consumption in mind, or use the Olimexino 328 as a basis, which is open source hardware and it has a decent power consumption both active and sleep modes.

 

Downloads:

 

 

The image below is a link. Try to click on it.

TuxCon Kitty TV BGone Mod Irdroid

This year’s (2017) TuxCon open source Linux conference took place in Plovdiv, Bulgaria. On the second day of this gathering ( the Workshop day) we all got a free and open source soldering Kit – the TuxCon Kitty conference badge (Thank you Olimex). The kit included a Atmel Attiny85 microcontroller, the TuxCon kitty pcb a buzzer two leds (the Kitty eye’s) one battery, battery holder and several resistors, capacitors and diodes.

I was on the conference with my son and we had a lot of fun assembling the kits. The kid was really exited to make his own toy and play with the other kids, attending the conference. Weeks after the conference I found the TuxCon kitty badge in my drawer and decide to make something cool with the Kitty badge – To turn it into a TuxCon Kitty TV BGone Mod Irdroid – To make it possible to switch ON/OFF any television by simply replacing several components from the existing design. The software that I have used simply sends a bunch of TV Power (ON/OFF) infrared commands in a loop.

Hardware Mod:

  1. Remove / desolder R1,R2, R3 and R4

  2. Solder 22 Ohm 0805 resistor to R1

  3. Remove Led1 and solder IR LED (TSAL6200)

  4. Desolder D1 and solder a micro switch/button in its place

Software:

The TuxCon Kitty badge is compatible with Arduino and comes pre-programmed with a bootloader and default code. I have programmed a new TuxCon Kitty BGone firmware using a STK500 programmer and desoldering/soldering the MCU (I havent yet found a way to write HEX using the Arduino IDE / the default bootloader in ATTiny85 that shipped with the badge) . I have used a Tiny85 code by Mitch Altman + Limor Fried (Adafruit Industries)

Supported TV Brands:

Acer, Admiral, Aiko, Alleron, Anam National, AOC, Apex, Baur, Bell&Howell, Brillian, Bush, Candle, Citizen, Contec, Cony, Crown, Curtis Mathes, Daiwoo, Dimensia, Electrograph, Electrohome, Emerson, Fisher, Fujitsu, Funai, Gateway, GE, Goldstar, Grundig, Grunpy, Hisense, Hitachi, Infinity, JBL, JC Penney, JVC, LG, Logik, Loewe, LXI, Majestic, Magnavox, Marantz, Maxent, Memorex, Mitsubishi, MGA, Montgomery Ward, Motorola, MTC, NEC, Neckermann, NetTV, Nikko, NTC, Otto Versand, Palladium, Panasonic, Philco, Philips, Pioneer, Portland, Proscan, Proton, Pulsar, Pye, Quasar, Quelle, Radio Shack, Realistic, RCA, Samsung, Sampo, Sansui, Sanyo, Scott, Sears, SEI, Sharp, Signature, Simpson, Sinudyne, Sonolor, Sony, Soundesign, Sylviana, Tatung, Teknika, Thompson, Toshiba, Universum, Viewsonic, Wards, White Westinghouse, Zenith

Downloads:

Source and Firmware

Get a assembled kit:

Grab a assembled and tested TuxCon Kitty TV B Gone Mod (USD 12)

The image below is a link. Try to click on it.

Irdroid Eye Control

Irdroid Eye Control

Irdroid Eye Control

The Irdroid Eye Control application allows the user to control Infrared controlled appliances such as TVs, STBs and Music Appliances by using the Eye Control technology (*requires pre-installed Eye Control Hardware and Software) or via voice control commands in Windows. The application implements a Lirc/WinLirc client, optimized for the Eye Control. Irdroid Eye Control is free and open source software application. Sources and Binaries can be downloaded from https://github.com/Irdroid/Eye-Control

Application features:

  • Support for all major TV, STB, Video Manufacturers
  • Works with WinLirc and Lirc
  • Compatible with Irdroid USB Infrared transceiver.
  • Java Application
  • Compatible with Windows voice control

Requirements:

  • PC with Java installed.
  • Working WinLirc/Lirc
  • Pre-installed Eye Control Hardware and Software.

Example Application:

  • Allow people with disabilities to control TVs, STBs and more only by focusing their eyes at the Irdroid Accessibility remote control buttons by using their Eye Control Software and Hardware.
  • Allow people with disabilities to control TVs, STBs and more using their voice in Windows.

Add IR Eye Control for you Desktop / Laptop computer

Get Module Kit:

  • Infrared Eye Control Kit that includes the USB Infrared Transceiver, extension cable and Manual can be purchased from http://www.irdroid.eu

Contribution:

Want to contribute and help further developing Irdroid Accessibility? Pull requests are welcome via the project GitHub repository.

The image below is a link. Try to click on it.

Windows 8 Drivers workaround for Irdroid USB Transceiver

Windows 8 requires that all drivers need to be signed, The USB Infrared Transceiver can work with Windows 8 but the workaround is that you need to turn off the signed driver requirement.

You can deactivate the forcing of signed drivers by using following Settings.

Open a Command Prompt (cmd) as Administrator and type in following two commands.

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON

With bcdedit you´re configurating the bootmenu of windows, so be careful. If something goes wrong you´ll need a windows dvd to repair the bootmanager.

After a restart you can install the driver normally. You just have to confirm to install the unsigned driver, just like in older versions of Windows.

The image below is a link. Try to click on it.

Observing infrared light from IR LEDs

Many people has asked me weather is possible to observe infrared signal emitted from the Irdroid IR LEDs with a naked eye . The answer is no, however one can observe an IR LED flashing with a camera, pointed to the Irdroid devices. The Irdroid modules has two IR LEDs which use half period rectification in order to double the 19khz carrier and to make it 38khz standard remote control carrier frequency.  When you point a camera toward Irdroid infrared module , you should be able to observe the two IR LEDs flashing when a button from the Irdroid app is tapped and a command is sent.

[mailchimpsf_form]

The image below is a link. Try to click on it.

Irdroid v2 tests with Samsung Galaxy Note II

In this article we will share the user experiance for  the Irdroid v.0.4,  Androlirc 0.3 infrared remote control applications and the Irdroid v2.0 (bluetooth version). We have performed  tests with the Irdroid v2.0 module connected to Samsung Galaxy Note 2 . The software that we have installed on the Samsung Galaxy Note II , was Irdroid v.0.4 from Google Play and Androlirc v.0.3 again from Google Play. The tests were performed with a Samsung LCD TV and a Bulsatcom sattellite STB receiver. The apps were loaded with the standard lircd.conf file that comes with Irdroid v.0.4 which includes a number of  supported TV / STB brands including Samsung TVs and Bulsatcom STB. First we have paired and connected the Samsung Galaxy Note 2 and the Irdroid v2.0 Bluetooth, the process is quite straight forward, no pairing keys were needed .


Presequsites:

•    Samsung Galaxy Note II (ot any Android Device with v1.6 or later)
•    Irdroid v.0.4
•    Androlirc v.0.3
•    Irdroid v2.0 (bluetooth version module)

Target Devices to be controlled:

•    Samsung LCD series 5
•    Bulsatcom STB

Continue reading

The image below is a link. Try to click on it.

Irdroid v2.0 power demand

Introduction

Due to the many requests from our clients regarding the power consumption of the Irdroid v2.0 modules, we have performed a number of laboratory tests , measuring the power consumption of the Irdroid v2.0 module. The Irdroid v2.0 modules are shipped with a standard DC 12V power adapter with 2.1 mm power jack. The adapters are rated 1A, 12V. The Power consumption of the module is significantly less than 1A. We have  performed a energy measurement tests with our smart power meter and using it’s information system for measuring the power consumption of the module under remote control conditions as well as under continuous music via Bluetooth A2DP and below you can find the measurement results.

The power consumption of the Irdoid v2.0:

the module consumes 0,8W from the mains power when used as a remote control for Android and a variable consumption in the range of 1,0W to 2,4W when used as a remote audio interface for Android. The peak consumption from the +12V power is about 0,2A.

Irdroid v2.0 power measurement results

Irdroid v2.0 power measurement results

[mailchimpsf_form]

The image below is a link. Try to click on it.

Controlling LED lighting with Irdroid

Recently we had the chance to play with some IR controlled Chinese RGB LED stripes and RGB LED bulbs  and  we have decided to make a simple application for android which controls LED lighting.

The app currently have two tabs one for switch on/ off the lights and one for changing the color of the led lights. Below you can watch a video demonstration of the app controlling a RGB led stripe. Currently the application supports Irdroid v1.0 modules and Irdroid v.2.0 (bluetooth).

 



From the first tab you are able to switch on or off the RGB LED stripe and to dim the lights. The second TAB gives you the option to change the RGB Stripe color. There is a settings menu from which you could choose weather to vibrate on keypress, use the accelerometer trigger feature and use a fixed screen portrait orientation.

 

[mailchimpsf_form]