How to use EMO-R8 directly ?



  • This post is deleted!


  • ONLY in English ...

    Hello,

    I have a Unipi 1.1 card and an 8 relay extension EMO-R8.

    I can drive the Unipi card (I2C address 0x20).
    The EMO-R8 module is configured to I2C address 0x22.

    But unlike the relays on the Unipi board, I can't do anything with the EMO-R8 module.

    Nothing happens :(

    Here is my program which works perfectly with the Unipi 1.1 board:

    #!/usr/bin/python
    
    #
    # Testing relays
    #
    
    import smtplib
    import math
    import smbus
    import time
    
    # Open the bus
    bus = smbus.SMBus(1)
    
    # Force output ports
    bus.write_byte_data( 0x20, 0x00, 0x00 )
    
    wait5s=5
    wait=0.125
    
    # Activates relays and switches them off 
    for value in [0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80]:
        bus.write_byte_data( 0x20, 0x09, value )
        time.sleep( wait5s )
    
    # Activates relays and switches them off 
    for value in range(0,80):
        bus.write_byte_data( 0x20, 0x09, value )
        time.sleep( wait )
    
    # Activates relays and switches them off 
    for value in range(80,0, -1):
        bus.write_byte_data( 0x20, 0x09, value )
        time.sleep( wait )
    
    # Activates relays and switches them off 
    for value in [0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01]:
        bus.write_byte_data( 0x20, 0x09, value )
        time.sleep( wait )
    
    # Force ports to zero
    bus.write_byte_data( 0x20, 0x09, 0x00 )
    

    See the list of I2C addresses used :

    root@raspberrypi-002:/home/pi# i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- --
    20: 20 -- 22 -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: 50 -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- 6f
    70: -- -- -- -- -- -- -- --
    

    This gives in readable form :

    Chip 			Adress		Usage			Board
    -----------------------------------------------------
    DS2482-100		0x18		1Wire master	Unipi 1.1
    MCP23008		0x20		Relays			Unipi 1.1
    MCP23008		0x22		Relays			EMO-R8
    24AA00/24C02	0x50-0x57	EEPROM			Unipi 1.1
    MCP79410		0x57,0x6F	Real time clock	Unipi 1.1
    MCP3422			0x68		ADC				Unipi 1.1
    
    root@raspberrypi-002:/home/pi/unipi# i2cdetect -l
    i2c-1   i2c             bcm2835 (i2c@7e804000)                  I2C adapter
    

    When I operate the Unipi relay ports :

    I have activated the MCP23008 (on the Unipi 1.1):

    It works perfectly :)

    Initialisation of port 0x20 (Unipi 1.1) :

    root@raspberrypi-002:/home/pi/unipi# i2cset -y 1 0x20 0x00 0x00
    
    root@raspberrypi-002:/home/pi/unipi# i2cset -y 1 0x20 0x09 0x01
    root@raspberrypi-002:/home/pi/unipi# i2cset -y 1 0x20 0x09 0x00
    

    How to use port 0x22 (EMO-R8) ?

    Because the following does not work :(

    Initialization of port 0x22 :

    root@raspberrypi-002:/home/pi/unipi# i2cset -y 1 0x22 0x00 0x00
    
    root@raspberrypi-002:/home/pi/unipi# i2cset -y 1 0x22 0x09 0x01
    root@raspberrypi-002:/home/pi/unipi# i2cset -y 1 0x22 0x09 0x00
    

    Do I need to do anything special to make the EMO-R8 modules work ?

    I know, that there are Unipi solutions via their programs. But, I want to be free and not use a program that will have difficulty interfacing with other programs specific to my needs.

    That's why I prefer to access the controllers directly and do exactly what I want.

    Thank you for your help :)

    JB


  • administrators

    Hello @PythonRunner ,

    it seems weird. There should be no traps - just one MCP23008 in the "typical" schematic.

    Do you have a power supply for the EMO board strong enough?

    Have you checked the functionality even with the Unipi software (e.g. Evok)?



  • @martin_triska Thank you for this answer :)

    As you can see the addresses of both MCP23008 are visible.

    0x20 for the MCP23008 on the Unipi 1.1 board
    0x22 for the MCP23008 of the EMO-R8 expansion board

    And both boards have their own power supplies purchased from Unipi (CLW-1005-W2E-EB) of 5V in 2A.

    And with or without, it doesn't matter...

    So I made a new RJ11 cable and it worked :)

    Life is simple especially with a good connection....


Log in to reply