Considering Photon as a learning tool instead of Arduino

tl;dr: I want to learn about MCUs, not sure if Photon fits the bill given my constraints

I’m an IT person by trade, primarily familiar with Unix, can code reasonably well. I’d like to learn more about microcontrolers and how I can bridge the gap between what I know (Unices) and different sensors. I have minimal Arduino experience, from couple of years ago. I’ve decided to make a wireless doorbell as a starter project, starting with simple “buzz when wireless button is pressed”, then extending it to have more capabilities (eg. send information to a proxy, have it pop up notifications on phones, etc.). This means, I’ll need:

  • some wireless link between mcu and button (RF433 for starters, maybe NRF2.4 later)
  • ethernet or wifi capability on mcu side

I’d also eventually like to end up constructing my own assembly for this (custom pcb, instead of using a devkit, just for fun and to learn things. It seems to me like Photon fits the bill, although I’m not sure about couple of things:

  • I’d prefer to keep all network communication (eg. mcu to notification forwarding proxy) local, without going through Particle’s servers - for both privacy and power saving reasons. I’m not sure how much of functionality I’ll be giving up on. This requirement made me give up on electric imp, for which there doesn’t seem to be a way to talk to local network devices.
  • How realistic is to use just P0/1 module with just the code I’ve written, shaving down on the bits of firmware I do not plan to use? I’m not sure whether my terminology is correct here - I’m essentially curious how much extra “support” code will the mcu be running in addition to the code I write (OTA flashing, etc.) and whether I’d be able to control that? This is purely for educational purposes, I don’t really expect myself to end up writing anything that has to be so tightly optimised :slight_smile:
  • Given the (bit vague) project description above, do you see any obvious extra periphery I might need, other than Photon itself? I have the parts that I know I’ll need - rf tx/rx, nrf modules, things like that, but things like programmer shield make me go hmm.

Last but not least: I must say that the main reason for considering Photon over Arduino is the fact that both wifi and ethernet shields for Arduino seem hard to get and expensive (in EU). :smiley:

Thanks in advance for any answers!

You just need something like SYSTEM_MODE(MANUAL) and have full control over the wifi and cloud connection. Cloud connection is not a MUST but it works out of the box.

There are few parts of the core functionality that the system is handling:

  1. Cloud connectivity
  2. Setting the GPIO, Timers, RGB, SETUP button etc etc. Basically things you need to initialize and manage to make the Arduino-style magic happen

Programmer shield is not a must unless you want to do stuff like debugging with stack trace etc.

You might experience some pain when interfacing with breakout boards cos Arduinoland libraries might not work out of the box. However, we have a fair bit of ports and the community is here to help if you cannot get it work.

Definitely worth trying it out for the price and feature benefits vs an… Arduino Uno :wink:

3 Likes