Note: This post originated from Robot Electronics, I have reposted it here with several edits for clarity and as a personal reference. As I continue to refine this document and it no longer closely resembles the original I will remove this note and replace it with a reference link at the bottom of this post. If anyone at Robot Electronics takes issue with this then please contact me and I will be happy to remove the article.


I2C is clearly very confusing for the newcomer. I know that I personally avoided I2C devices for my first few projects but now that I have learned the ins-and-outs of I2C I thought I would share these lessons with everyone. This page attempts to de-mystify the I2C bus, lets hope I can do that!

The Physical I2C Bus

This is just two wires, called SCL and SDA. SCL is the clock line. It is used to synchronize all data transfers over the I2C bus. SDA is the data line. The SCL and SDA lines are connected to all devices on the I2C bus. There needs to be a third wire which is just the ground or 0 volts. There may also be a 5 V wire if power is being distributed to the devices. Both SCL and SDA lines are “open drain” drivers. What this means is that the chip can drive its output low, but it cannot drive it high. For the line to be able to go high you must provide pull-up resistors to the 5 V supply. There should be a resistor from the SCL line to the 5 V line and another from the SDA line to the 5 V line. You only need one set of pull-up resistors for the whole I2C bus, not for each device, as illustrated below:

Image showing how to use pull-up resistors on the I2C bus.

Using pull-up resistors on the I2C bus

The value of the resistors is not critical. I have seen anything from 1k8 (1800 ohms) to 47k (47000 ohms) used. 1k8, 4k7 and 10k are common values, but anything in this range should work OK. I recommend 1k8 as this gives you the best performance. If the resistors are missing, the SCL and SDA lines will always be low – nearly 0 V – and the I2C bus will not work.

Masters and Slaves

The devices on the I2C bus are either masters or slaves. The master is always the device that drives the SCL clock line. The slaves are the devices that respond to the master. A slave cannot initiate a transfer over the I2C bus, only a master can do that. There can be, and usually are, multiple slaves on the I2C bus, however there is normally only one master. It is possible to have multiple masters, but it is unusual and not covered here. On your robot, the master will be your controller and the slaves will be our modules such as the SRF08 or CMPS03. Slaves will never initiate a transfer. Both master and slave can transfer data over the I2C bus, but that transfer is always controlled by the master.

The I2C Physical Protocol

When the master (your controller) wishes to talk to a slave (our CMPS03 for example) it begins by issuing a start sequence on the I2C bus. A start sequence is one of two special sequences defined for the I2C bus, the other being the stop sequence. The start sequence and stop sequence are special in that these are the only places where the SDA (data line) is allowed to change while the SCL (clock line) is high. When data is being transferred, SDA must remain stable and not change whilst SCL is high. The start and stop sequences mark the beginning and end of a transaction with the slave device.

Data is transferred in sequences of 8 bits. The bits are placed on the SDA line starting with the MSB (Most Significant Bit). The SCL line is then pulsed high, then low. Remember that the chip cannot really drive the line high, it simply “lets go” of it and the resistor actually pulls it high. For every 8 bits transferred, the device receiving the data sends back an acknowledge bit, so there are actually 9 SCL clock pulses to transfer each 8 bit byte of data. If the receiving device sends back a low ACK bit, then it has received the data and is ready to accept another byte. If it sends back a high then it is indicating it cannot accept any further data and the master should terminate the transfer by sending a stop sequence.

How Fast is it?

The standard clock (SCL) speed for I2C up to 100 kHz. Philips do define faster speeds: Fast mode, which is up to 400 kHz and High Speed mode which is up to 3.4 MHz. All of our modules are designed to work at up to 100 kHz. We have tested our modules up to 1 MHz but this needs a small delay of a few uS between each byte transferred. In practical robots, we have never had any need to use high SCL speeds. Keep SCL at or below 100 kHz and then forget about it.

I2C Device Addressing

All I2C addresses are either 7 bits or 10 bits. The use of 10 bit addresses is rare and is not covered here. All of our modules and the common chips you will use will have 7 bit addresses. This means that you can have up to 128 devices on the I2C bus, since a 7 bit number can be from 0 to 127. When sending out the 7 bit address, we still always send 8 bits. The extra bit is used to inform the slave if the master is writing to it or reading from it. If the bit is zero the master is writing to the slave. If the bit is 1 the master is reading from the slave. The 7 bit address is placed in the upper 7 bits of the byte and the Read/Write (R/W) bit is in the LSB (Least Significant Bit).

The placement of the 7 bit address in the upper 7 bits of the byte is a source of confusion for the newcomer. It means that to write to address 21, you must actually send out 42 which is 21 moved over by 1 bit. It is probably easier to think of the I2C bus addresses as 8 bit addresses, with even addresses as write only, and the odd addresses as the read address for the same device. To take our CMPS03 for example, this is at address 0xC0 ($C0). You would uses 0xC0 to write to the CMPS03 and 0xC1 to read from it. So the read/write bit just makes it an odd/even address.

The I2C Software Protocol

The first thing that will happen is that the master will send out a start sequence. This will alert all the slave devices on the bus that a transaction is starting and they should listen in incase it is for them. Next the master will send out the device address. The slave that matches this address will continue with the transaction, any others will ignore the rest of this transaction and wait for the next. Having addressed the slave device the master must now send out the internal location or register number inside the slave that it wishes to write to or read from. This number is obviously dependant on what the slave actually is and how many internal registers it has. Some very simple devices do not have any, but most do, including all of our modules. Our CMPS03 has 16 locations numbered 0-15. The SRF08 has 36. Having sent the I2C address and the internal register address the master can now send the data byte (or bytes, it doesn’t have to be just one). The master can continue to send data bytes to the slave and these will normally be placed in the following registers because the slave will automatically increment the internal register address after each byte. When the master has finished writing all data to the slave, it sends a stop sequence which completes the transaction. So to write to a slave device:

  1. Send a start sequence
  2. Send the I2C address of the slave with the R/W bit low (even address)
  3. Send the internal register number you want to write to
  4. Send the data byte
  5. [Optionally, send any further data bytes]
  6. Send the stop sequence.

As an example, you have an SRF08 at the factory default address of 0xE0. To start the SRF08 ranging you would write 0x51 to the command register at 0x00 like this:

  1. Send a start sequence
  2. Send 0xE0 ( I2C address of the SRF08 with the R/W bit low (even address)
  3. Send 0x00 (Internal address of the command register)
  4. Send 0x51 (The command to start the SRF08 ranging)
  5. Send the stop sequence.

Reading from the Slave

This is a little more complicated – but not too much more. Before reading data from the slave device, you must tell it which of its internal addresses you want to read. So a read of the slave actually starts off by writing to it. This is the same as when you want to write to it: You send the start sequence, the I2C address of the slave with the R/W bit low (even address) and the internal register number you want to write to. Now you send another start sequence (sometimes called a restart) and the I2C address again – this time with the read bit set. You then read as many data bytes as you wish and terminate the transaction with a stop sequence. So to read the compass bearing as a byte from the CMPS03 module:

  1. Send a start sequence
  2. Send 0xC0 ( I2C address of the CMPS03 with the R/W bit low (even address)
  3. Send 0x01 (Internal address of the bearing register)
  4. Send a start sequence again (repeated start)
  5. Send 0xC1 ( I2C address of the CMPS03 with the R/W bit high (odd address)
  6. Read data byte from CMPS03
  7. Send the stop sequence.

The bit sequence will look like this:

Wait a Moment

That’s almost it for simple I2C communications, but there is one more complication. When the master is reading from the slave, its the slave that places the data on the SDA line, but its the master that controls the clock. What if the slave is not ready to send the data! With devices such as EEPROMs this is not a problem, but when the slave device is actually a microprocessor with other things to do, it can be a problem. The microprocessor on the slave device will need to go to an interrupt routine, save its working registers, find out what address the master wants to read from, get the data and place it in its transmission register. This can take many uS to happen, meanwhile the master is blissfully sending out clock pulses on the SCL line that the slave cannot respond to. The I2C protocol provides a solution to this: the slave is allowed to hold the SCL line low! This is called clock stretching. When the slave gets the read command from the master it holds the clock line low. The microprocessor then gets the requested data, places it in the transmission register and releases the clock line allowing the pull-up resistor to finally pull it high. From the masters point of view, it will issue the first clock pulse of the read by making SCL high and then check to see if it really has gone high. If its still low then its the slave that holding it low and the master should wait until it goes high before continuing. Luckily the hardware I2C ports on most microprocessors will handle this automatically.

Sometimes however, the master I2C is just a collection of subroutines and there are a few implementations out there that completely ignore clock stretching. They work with things like EEPROM’s but not with microprocessor slaves that use clock stretching. The result is that erroneous data is read from the slave. Beware!

Example Master Code using the PIC Processor

This example shows how to implement a software I2C master, including clock stretching. It is written in C for the PIC processor, but should be applicable to most processors with minor changes to the I/O pin definitions. It is suitable for controlling all of our I2C based robot modules. Since the SCL and SDA lines are open drain type, we use the tristate control register to control the output, keeping the output register low. The port pins still need to be read though, so they’re defined as SCL_IN and SDA_IN. This definition and the initialization is probably all you’ll need to change for a different processor.

#define SCL     TRISB4  // I2C bus 
#define SDA     TRISB1	// 
#define SCL_IN  RB4     //
#define SDA_IN  RB1     //

To initialize the ports, set the output resistors to 0 and the tristate registers to 1 which disables the outputs and allows them to be pulled high by the resistors.

SDA = SCL = 1;
SCL_IN = SDA_IN = 0;

We use a small delay routine between SDA and SCL changes to give a clear sequence on the I2C bus. This is nothing more than a subroutine call and return.

void i2c_dly(void){}

The following 4 functions provide the primitive start, stop, read and write sequences. All I2C transactions can be built up from these.

void i2c_start(void) {
    SDA = 1; //I2C start bit sequence
    i2c_dly();
    SCL = 1;
    i2c_dly();
    SDA = 0;
    i2c_dly();
    SCL = 0;
    i2c_dly();
}
void i2c_stop(void) { 
	SDA = 0; // I2C stop bit sequence 
	i2c_dly(); 
	SCL = 1; 
	i2c_dly(); 
	SDA = 1; 
	i2c_dly();
}
unsigned char i2c_rx(char ack) {
	char x, d=0; 
	SDA = 1;  
	for(x=0; x<8; x++) { 
		d <<= 1; 
		do { SCL = 1; } 
		while( SCL_IN == 0 ); // wait for any SCL clock stretching 
			i2c_dly(); 
		if(SDA_IN) d |= 1; 
		SCL = 0; 
	}  
	if(ack) SDA = 0; 
	else SDA = 1;
	SCL = 1; 
	i2c_dly(); // send (N)ACK bit 
	SCL = 0; 
	SDA = 1; 
	return d; 
}
bit i2c_tx(unsigned char d) { 
	char x; 
	static bit b; 
	for(x=8; x; x--) { 
		if(d&0x80) SDA = 1; 
		else SDA = 0; 
		SCL = 1; 
		d <<= 1;
		SCL = 0;
	}
	SDA = 1; 
	SCL = 1; 
	i2c_dly(); 
	b = SDA_IN; // possible ACK bit SCL = 0;
	return b; 
}

The 4 primitive functions above can easily be put together to form complete I2C transactions. Here’s an example to start an SRF08 ranging in cm:

i2c_start(); // send start sequence 
i2c_tx(0xE0); // SRF08 I2C address with R/W bit clear
i2c_tx(0x00); // SRF08 command register address
i2c_tx(0x51); // command to start ranging in cm
i2c_stop(); // send stop sequence

Now after waiting 65mS for the ranging to complete (I’ve left that to you) the following example shows how to read the light sensor value from register 1 and the range result from registers 2 & 3.

i2c_start(); // send start sequence 
i2c_tx(0xE0); // SRF08 I2C address with R/W bit clear
i2c_tx(0x01); // SRF08 light sensor register address
i2c_start(); // send a restart sequence 
i2c_tx(0xE1); // SRF08 I2C address with R/W bit set
lightsensor = i2c_rx(1); // get light sensor and send acknowledge. Internal register address will increment automatically. 
rangehigh = i2c_rx(1); // get the high byte of the range and send acknowledge. 
rangelow = i2c_rx(0); // get low byte of the range - note we don't acknowledge the last byte. 
i2c_stop(); // send stop sequence

Using I2C Interface on the BeagleBone Black

Coming soon!

External References

The definitive specs on the I2C bus can be found on the NXP website. It is currently here but if it has moved you’ll find it easily by searching for “I2C bus specification”. I also found these references useful when compiling this tutorial so if I missed something here, perhaps you will find what you need at one of these links.

To Do on This Article

This is for me, not you :)

  1. Remove references to Robot Electronics and their parts catalog
  2. Replace images with my own high quality versions
  3. Add code examples for Arduino
  4. Add code examples for BeagleBone
  5. Integrate anything I feel is important from the I2C specification
  6. Add a section on understanding how addresses are assigned

99 Comments

  1. Adrian

    Awesome article. Code examples for BB would be a great addition. Thank you. :)

  2. It’s a plusaere to find someone who can think so clearly

  3. You’ve hit the ball out the park! Inlecdiber!

  4. The genius store cadell, they’re running out of you.

  5. This is crytasl clear. Thanks for taking the time!

  6. Ya learn sontheimg new everyday. It’s true I guess!

  7. 290857 371952Some actually excellent articles on this site , thankyou for contribution. 691167

  8. 429098 461980You produced some decent points there. I looked online towards the concern and discovered a lot of people is going in addition to employing your internet site. 594544

  9. 113648 498883i just didnt require a kindle at initial, but when receiving one for christmas im utterly converted. It supply genuine advantages over a book, and makes it such a great deal additional convenient. i may undoubtedly advocate this item: 559125

  10. 142685 625302I adore gathering beneficial information, this post has got me even far more information! . 798792

  11. 387462 208307Nice read, I just passed this onto a friend who was doing some research on that. And he just bought me lunch as I found it for him smile Therefore let me rephrase that: Thank you for lunch! 624624

  12. personal pc backgrounds

  13. 184122 817807An very fascinating go via, I might not concur entirely, nevertheless you do make some truly legitimate factors. 582410

  14. The things i tend not to realize is actually how you happen to be not
    actually considerably more smartly-liked than you can be now.
    You’re so intelligent. You are already aware thus considerably with regards to
    this topic, produced me individually consider it from numerous numerous angles.
    Its like men and women aren’t fascinated except
    it’s something to do with Woman gaga! Your own personal stuffs great.
    Constantly cope with it!

  15. q7s0CC Normally I don at read article on blogs, but I wish to say that this write-up very compelled me to try and do so! Your writing style has been amazed me. Thank you, quite great post.

  16. Awesome write-up. I’m a regular visitor of your blog and appreciate you taking the time to maintain the excellent site. I’ll be a regular visitor for a long time.

  17. I believe there could be a several duplicates, but an exceedingly helpful record! I’ve tweeted this. Quite a few thanks for sharing!

  18. desktop wall picture hd

  19. 478638 785049Real informative and amazing anatomical structure of topic material , now thats user pleasant (:. 94292

  20. 72885 816399Pretty section of content material. I just stumbled upon your weblog and in accession capital to assert that I get truly enjoyed account your weblog posts. Any way I will likely be subscribing to your augment and even I achievement you access consistently swiftly. 328001

  21. 634384 268624As I web-site possessor I believe the content matter here is rattling excellent , appreciate it for your hard work. You should keep it up forever! Best of luck. 173964

  22. 650387 817531Some actually excellent articles on this site , thankyou for contribution. 430231

  23. Generally I don’t learn article on blogs, however I would like to claim that this
    write-up very forced me to look into and do so! Your writing style continues to
    be surprised me. Thank you, quite great post.

  24. Terrific article! This can be the level of information that ought to be shared throughout
    the internet. Shame on Google for not positioning this
    submit upper! Happen over and seek advice from
    my site . Thank you =)

  25. Hello! Do you know if they make any plugins to assist with
    SEO? I’m trying to get my blog to rank for some targeted keywords
    but I’m not seeing very good gains. If you know of any please share.
    Many thanks!

  26. What’s Happening i’m new to this, I found this I actually have found It positively helpful and contains helped me out loads.
    I’m hoping to contribute & help other users like its
    helped me. Good job.

  27. Im obliged for the article post.Really looking forward to read more. Much obliged.

  28. wow, awesome blog post.Thanks Again. Fantastic.

  29. Heya i’m for the primary time here. I came across this board and I in finding It really helpful & it helped me out much. I hope to give one thing again and aid others like you helped me.|

  30. You could certainly see your skills in the article you write.
    The world hopes for more passionate writers such as you who
    aren’t afraid to mention how they believe. At all times go after your heart.

  31. I benefit from reading through your site. Thanks a ton!

  32. Hmm it seems such as your blog ate my first comment (it had been extremely long) and so i
    guess I’ll just sum it up things i submitted and say, I’m thoroughly enjoying your blog.
    I too am an aspiring blog blogger but I’m still a new comer to everything.
    Are you experiencing any recommendations for first-time blog writers?
    I’d certainly appreciate it.

  33. Fantastic article post.Much thanks again. Great.

  34. Thanks for sharing your fantastic site

  35. In quick, we promote the scrap metal in the cars. There are other components of the vehicle
    that we will take off and promote relying on its situation. You’ll make
    more money in case your car is in good condition, but you’ll be able to still earn rather a lot with a wrecked beater.

  36. I actually have been sitting around my home ALL DAY waiting
    for these people to come and get my automobile. I called at eleven:14 AM and the man informed me about 2 hours.

  37. Hi Steve and Sandi,I thought the videos were an awesome touch, very inoetmarivf…I only wish we had more time to view them all the way through. We only had about 15 minutes, but I would have stayed all afternoon if I had the time! You have a wonderful museum. And yes, if you come across the maker of the toilet, I’d love to know Cheri

  38. Someone essentially help to help make severely articles I may state.
    That may be the first time I frequented your website page and thus far?
    I amazed with all the research you designed to create this actual post amazing.
    Fantastic job!

  39. Hey there! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on. Any tips?

  40. There’s certainly a great deal to find out about this topic.

    I adore all of the points you possess made.

  41. I’ll immediately snatch your feed while i can’t in discovering your e-mail subscription hyperlink or e-newsletter service.
    Do you possess any? Kindly permit me know as a way
    that I might just subscribe. Thanks.

  42. Really had to mention I am thankful I came upon your webpage!.

  43. My relatives always say that I am killing my time at net,
    however I am aware I am getting know-how daily by reading
    thes pleasant articles or reviews.

  44. I value the blog.Thanks Again.

  45. I’m extremely pleased to locate this web site. I needed to thanks
    a lot to your time with this fantastic read!! I definitely enjoyed every component of it and I perhaps
    you have book marked to think about new information on your own website.

  46. This website is amazing. I will tell about it to my friends and anybody that could be interested in this subject. Great work guys!

  47. This page really has all of the information I wanted about this subject and
    didn’t know who to ask.

  48. Thanks again for the blog. Great.

  49. wow, awesome post.Much thanks again. Great.

  50. Servicio técnico de lavadoras en Ciudad Pegaso, para la reparación de lavadoras nuestros técnicos cuentan con las herramientas más modernas en el mercado, la reparación de averías la solucionamos en el mismo día que usted nos lo solicite. Los robots aspiradores son otro de los electrodomésticos que han cambiado nuestra manera de concebir las tareas del hogar.

  51. It is actually truly a great and useful piece of information. I am satisfied that you simply shared this helpful information around.
    Please keep us up-to-date such as this. Thanks a lot for sharing.

  52. I value the post.Thanks Again. Much obliged.

  53. Hey, thanks for the blog article.Thanks Again. Really Cool.

  54. This is very great guide i will link this post to my blog, keep posting!

  55. At Cannabis Connection, we attempt to be the world’s premiere
    medical marijuana company by providing business leading prices
    and compassionate customer service. We care personally for all our sufferers and their right to access high quality medication.

  56. Foster parents encourage and assist the non secular beliefs,
    heritage, and language of the child and his or her household.

  57. Thanks a lot for the blog article.Much thanks again. Keep writing.

  58. husGOj This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your excellent post. Also, I have shared your site in my social networks!

  59. Thanks a lot for the blog post.Thanks Again. Will read on…

  60. A fascinating discussion is worth comment. There’s no doubt that that you ought to write more on this subject matter, it may not be a taboo matter but usually people don’t discuss such issues. To the next! Cheers!!

  61. magnificent submit, very informative. I’m wondering why the opposite experts of this sector don’t notice this. You should continue your writing. I am sure, you’ve a great readers’ base already!

  62. wJeJoG Really appreciate you sharing this blog article.Really looking forward to read more. Really Great.

  63. “Major thankies for the article.Really thank you! Really Cool.”

  64. Im grateful for the blog.Thanks Again. Really Cool.

  65. I’ve been absent for a while, but now I remember why I used to love this web site. Thanks , I will try and check back more often. How frequently you update your website?

  66. Wow! Thank you! I constantly needed to write on my blog something like that. Can I implement a part of your post to my blog?

  67. Nissan managed to build the best vehicle ever to come out of an Asian factory. They managed to take the good parts from the old 350Z version and embed them into a much better machinery, while trying to improve on the design. This way, the GT-R35 became an incredible piece of great looking high-tech vehicle wanted all over the world. It managed to become one of the most wanted supercars of the modern days and one of the most interesting concepts.

  68. Good post. I learn something totally new and challenging on websites I stumbleupon every day. It’s always useful to read through articles from other authors and use a little something from other websites.

  69. It’s truly a great and useful piece of info. I’m glad that you shared this helpful information with us. Please stay us up to date like this. Thanks for sharing.

  70. A fascinating discussion is worth comment. There’s no doubt that that you need to publish more about this subject, it might not be a taboo matter but typically people don’t discuss these issues. To the next! All the best!!

  71. Thanks , I have recently been searching for information about this topic for ages and yours is
    the greatest I have found out so far. But, what about the conclusion? Are you sure about the supply?

  72. Really enjoyed this article.Really thank you! Will read on…

  73. An impressive share! I’ve just forwarded this onto a colleague who
    was doing a little homework on this. And he in fact ordered me
    lunch because I discovered it for him… lol. So allow me to reword this….
    Thank YOU for the meal!! But yeah, thanx for spending the time to talk about this issue here on your web
    page.

  74. Just want to say your article is as surprising. The clearness in your post is just spectacular and i could assume you are an expert on this subject. Well with your permission let me to grab your RSS feed to keep updated with forthcoming post. Thanks a million and please carry on the enjoyable work.

  75. There are some attention-grabbing closing dates on this article however I don’t know if I see all of them middle to heart. There’s some validity but I’ll take hold opinion till I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as effectively

  76. You are a very bright person!

  77. Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something. I think that you could do with some pics to drive the message home a little bit, but other than that, this is excellent blog. A fantastic read. I’ll certainly be back.

  78. Major thankies for the blog post.Thanks Again. Awesome.

  79. Everything is very open with a very clear explanation of the challenges. It was truly informative. Your website is very useful. Many thanks for sharing!

  80. I value the post.Really looking forward to read more. Really Great.

  81. Magnificent beat ! I prefer to apprentice even while you amend your site,
    how can i subscribe for any weblog site? The account helped us a appropriate
    deal. I ended up being tiny bit acquainted on this your broadcast offered bright clear idea

  82. Utilizamos cookies propias y de terceros para mejorar nuestros Servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Las cookies permiten a una página web, entre otras cosas, almacenar y recuperar información sobre los hábitos de navegación de un usuario de su equipo y, dependiendo de la información que contengan y de la forma en que utilice su equipo, pueden utilizarse para reconocer al usuario. Cookies técnicas: estrictamente necesarias para la prestación de determinados servicios solicitados expresamente por el usuario. Si se desactivan estas cookies, no garantizamos que pueda utilizar correctamente nuestros contenidos y servicios. Nuestro servicio técnico dispone de atención telefónica 24 h. para reparaciones de Urgencias y festivos.

  83. Ofrecemos un servicio técnico Westinghouse de calidad y con garantías, siempre esforzándonos al máximo en cada reparación, satisfaciendo las expectativas que nuestros clientes ponen en nuestra empresa, aunque no seamos el servicio técnico oficial de la marca Westinghouse. La reparación y el mantenimiento de sus electrodomésticos Westinghouse es muy importante para garantizar la vida útil de su electrodoméstico así como para ofrecer un rendimiento óptimo en el uso del electrodoméstico en el día a día. Nuestras reparaciones en Madrid están garantizadas por escrito en los materiales empleados como en la mano de obra.

  84. Epígrafe 662.2.- Comercio al por menor de toda clase de artículos, incluyendo alimentación y bebidas, en establecimientos distintos de los especificados en el Grupo 661 y en el epígrafe 662.1. Epígrafe 663.1.- Comercio al por menor fuera de un establecimiento comercial permanente de productos alimenticios, incluso bebidas y helados. Epígrafe 663.2.- Comercio al por menor fuera de un establecimiento comercial permanente de artículos textiles y de confección.

  85. Somos servicio tecnico oficial en las marcas que indicamos mas abajo, pero reparamos cualquier marca y modelo

  86. Servicio tecnico y asistencia tecnica para reparacion de cualquier tipo de averia en frigorificos: No se enciende, saltan los plomos, quemado, cierres de puerta, genera escarcha, mandos, congela todo, pierde agua, se sale el agua, no arranca, cambio de gomas, cambio de puertas, bombillas fundidas, no enfría, no congela, congela demasiado. Introdujo el éter dimetílico y la trimetilamina en la industria, y en 1876 consiguió construir el primer frigorificos plenamente funcional.

  87. También os puedo decir que el tema de ruidos suele ser común en muchas marcas de refrigeradores (Precisamente un Fagor que compró una cuñada mía hace un año, al par de meses de tenerlo en casa, empezó a hacer un ruido bestial, y la de mi madre, que es una Balay, cuando para y arranca el compresor también hace ruido), osea que un mal menor. Lo que creo es que el futuro cliente de Haier, no ha leído todos los artículos, no le alcanza para comprender todo lo que has comentado en ellos. De todas formas soy optimista y espero que este nuevo frigo-combi-Haider me compense de la mala experienza que he tenido con Electrolux. HAIER es la empresa del sector más importante del mundo en desarrollo, y ha puesto muy especial atención en Sudamérica.

  88. One can find surely a great deal of details like that to take into consideration. That is an awesome point to bring up. I offer you the thoughts above as general inspiration but clearly you’ll find questions like the one you bring up exactly where by far the most essential thing will likely be working in honest fine faith. I don?t know if ideal practices have emerged around issues like that, but I’m certain that your job is clearly identified as a fair game. Both boys and girls feel the impact of just a moment’s pleasure, for the rest of their lives. cheap jordans

  89. Reparamos primeras marcas en maquinaria de Hostelería, Frio Industrial, Aire Acondicionado, Cocinas y Linea de Lavado. Su satisfacción es muy importante para nosotros, y si realiza la reparación no le cobramos desplazamiento, cosa que llevamos haciendo desde 1987. FNAC desde hace 3 años NO trabaja con ordenadores Fujitsu y desde hace 1 con ACER, dan muchos problemas y su servicio tecnico es horrible. Y por regla general, el trato al cliente en cuestión de garantías en SPV es de lo mejor que hay.

Leave a Reply