I am doing a project which requires remote communication between a microcontroller and a circuit containing 2 stepper motors. I am using a PIC24FJ32MC101 because that's what I had laying around the house when I started. The project requires communication over a distance of about 6 inches where line of sight is not possible. The data transferred will be controlling stepper motors so the speed at which the data is transferred is not important. The connection should be able to be preprogrammed and does not require any pairing or connection setup such as Bluetooth does when powering on.

I am just starting out and I am getting overwhelmed by all the terminology such as UART, I2C, Bluetooth, Wifi, RF, infrared and many more. I am a little unclear which one of these are protocols and which are methods of remote communication such as RF and infrared.

For example, I think UART, I2C and Bluetooth are protocols but Bluetooth is also only wireless and UART can be both. So if I choose to use Bluetooth, do I have to also choose a data protocol like UART or I2C? If I choose RF chips do they require the same handshaking that Bluetooth does? That wouldn't really work for this application.

I also know that Infrared and RF are physical methods of data transfer but are there any more I should consider? Are there any popular chips that I should consider using with lots of documentation and tutorials?

I tried reading a lot online but felt more confused the more I dove in. If there is any good simplified reading of the overall problem of remote comm I would be glad to check it out.

Thank you for any help!

Edit: The communication needs to be wireless and is only 1 way. I was trying to get away without any processing on the receiving side but it is not an issue if a microcontroller is required there also. The transmitting side has a PIC24 as stated above.

  • \$\begingroup\$ UART and I2C are not really protocols they are more a standard for the physical hardware connection. Bluetooth is very different to both UART and I2C as it involves frequency hopping. I mean wireless and wired comms are both physical connections but you have to be more clear about what you are trying to acheive. Does your remote connection have to be wireless or wired? Is it one way comms? What processsing does both ends have? Be CLEAR and SPECIFIC about what you need help with. You put a lot of question marks but there are very broad questions. \$\endgroup\$
    – crowie
    Jan 29, 2017 at 6:52
  • \$\begingroup\$ Ok cool. I do find it odd that it has to be wireless and is only a distance of 6 inches because if you could run some wires to both stepper motors you could control them directly from the PIC. Having to use a wireless coms link over such a short distance really adds a level of complexity you really would want to avoid. \$\endgroup\$
    – crowie
    Jan 29, 2017 at 10:31
  • \$\begingroup\$ What data rate and what, if any, are the likely potential sources of interference. Also, how is each side of the data link powered? \$\endgroup\$
    – Andy aka
    Jan 29, 2017 at 10:42
  • \$\begingroup\$ Yea I understand how wireless complicates things but it is necessary. One side is powered by a 12 V inverter plugged into the wall and the receiving end is powered by a 9 V battery. Like I said the data transfer rate is not important because it's just some steppers. \$\endgroup\$ Jan 29, 2017 at 19:45
  • \$\begingroup\$ I'm voting to close this old unresolved question as off-topic because questions seeking an open ended list of responses fail the requirement for specific answerability. That this is still unresolved two years later demonstrates the fundamental flaw with such questions, and/or that the asker has simply abandoned the query. \$\endgroup\$ Aug 2, 2019 at 16:49

1 Answer 1


As mentioned in the comments, UART and I2C can be considered to be physical hardware connections with a defined method of signaling. I2C is a hardware bus generally used for communication between chips (often on the same board), and involves a specific timing and signaling method. UART also has it's own timing, but is a more universal way to transmit general serial data between just two devices.

Bluetooth is a wireless communication protocol. It defines how two devices handshake, communicate, transmit data, check in, etc. with each other. However, since Bluetooth uses UART to move data around on the hardware side, you can almost think of a Bluetooth link as a virtual UART connection between two devices, but with a lot more complexity and functionality underneath. Using Bluetooth wouldn't really be as simple as issung a "uart.write()" command, for instance.

I think you should look into using something like the XBee. An XBee literally is a virtual link between two UARTs and would keep your wireless communication as simple as possible.

All you'd have to do is hook up an XBee to the transmitter's UART (PIC24 side), and hook up an XBee to the receiver's UART (is this also a PIC24?). Once you do that, you can do a simple UART read/write on either side and it would be as if you had wires connecting the Tx and Rx pins.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.