2

I'm working on a prototype with a Particle Photon, but I've realized the required number of pins is bigger than the number of pins on my photon.

I thought I could have an Arduino Uno wired to some sensors, and link the Arduino to the photon via a Software Serial from the Arduino (as its serial pins will already be busy) to the Serial pins of the photon.

Is it possible, and is there a better way to solve my problem?

1

If you just need to get more inputs you could use multiplexing. The multiplexing method is more robust than software serial will be. How to do this is explained here and datasheet for the commonly used cd4051 here

You don't specify what kind of sensors you will use. if the sensors are i2c or similar it is possible to daisychain (multiplex too) them.

-1

Everything is possible, it is programming. People are doing software-only USB on AVRs.

I doubt that the effort is worth it, given how hard it is to debug such low-level code. Besides you can use on-board UART if you don't need the USB connectivity - just disable it.

Main question is - where is the main software run, aka "Who's the Brain"? If Photon, maybe you can use SPI? SPI is dead-simple to emulate in software.

  • The photon is the brain, the Arduino would provide me with more pins – jonathanGB Jan 16 '16 at 17:34
  • The USB of the Photon will already be used, do I have options other than softSerial? – jonathanGB Jan 18 '16 at 19:43
  • 1
    Photon has SPI. Arduino Uno has SPI. Photon has I2C. Arduino Uno has I2C too. Programming them will be easier than software emulation of UART. I'd try SPI. – IOB Toolkit Team Jan 18 '16 at 20:26
  • Oh, I didn't know this protocol. I'll definitely take a look! – jonathanGB Jan 18 '16 at 20:30
  • 1
    Yes, I2C is nice to wire, but it's relatively complex to program. SPI is simpler to program than UART, but requires more wires (4 vs 2). – IOB Toolkit Team Jan 18 '16 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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