I am a software developer. I make apps.

I have several ideas for Bluetooth-enabled smart devices using basic accessories and peripherals like cameras, speakers/headphones, lights and some external buttons/controls - Like a helmet with front and rear camera, headset/speakers and physical volume/call controls or buttons.

I can code the apps but where do I start with the electronics?

Is it best to just buy a Raspberry Pi kit with all the USB accessories, install android or Linux and code directly against that Pi unit - or is there a simpler way?

Is there anywhere I can find learning or study material to help me?

  • 2
    $\begingroup$ Take a look at Arduino (massive support base, like the Pi). Simpler (system-wise) than Pi. There is no OS involved, so less overhead. Depends what you want to do. BTW, this seems a bit of an opinion-based question, as it stands. $\endgroup$ – Greenonline Aug 25 at 10:18
  • $\begingroup$ Welcome to Robotics TaterJuice, but I'm afraid that Life Questions are off-topic. Choosing how to spend your time (books to read, classes to take, projects to construct, career to pursue etc.) may be difficult, but it's specific to you, so unlikely to help future visitors. Questions like this are welcome in Robotics Chat when you have the privilege. We prefer practical, answerable questions based on actual problems that you face, see How to Ask & tour. $\endgroup$ – Chuck Aug 26 at 15:07

To learn electronics (which is pretty much essential), then a copy of The Art of Electronics, by Horowitz and Hill (ISBN: 978-0-521-37095-0), is indispensable.

Nevertheless, on its own, it might not get you up and running as quickly as you like. Also, as you want to build a smart device, you will probably also need a controller of some sort, and you have mentioned the Pi (or Pi kit).

However, as an alternative to the Pi you might want to consider Arduino (or Arduino beginners kit).

Arduino is a lot simpler than Pi, with a lot less over head, code footprint wise. Yes, you can get a Python script running quickly on a Pi, that is true, so the Pi is simpler in that respect.

However, with Arduino, you are coding onto bare-metal, so to speak. You write and compile a "few" lines of code, and upload that to the Arduino, and that is all of the code that you need. Whereas, with Pi, you (usually) end up writing a Linux based application, to run on an OS. So, in that respect, Arduino code can run faster (generally - although some more argue otherwise), as there is no code running for screen updates or keyboard input, and all of the other baggage that comes with a full-blown PC (which is what a Pi is, albeit a rather small one).

Arduino comes with countless libraries so, when it comes to interfacing the Arduino with a particular device, most to the work will be done for you. There's also a lot of ready-to-go examples and projects out there for you to copy or adapt for your own purposes. So, while you will need to, or should, learn electronics (in the end), for a while you may be able to get away without learning/knowing the theory.

That said, I have a few friends (with no electronics training/background), who have tried Arduino, and after trying to run before learning to walk, they have sadly given up. This is because they refused to start off slowly with the excellent basic examples provided and tried to do big projects without any understanding of either C/C++/OOP and/or electronic theory.

You could counter all of the above, with equal arguments for the Pi... It really depends on what you want to do. For simple devices, like wearables, which you seem to refer to, then Arduino would seem to be more sensible, due to the possibility size reduction. For large complex projects, with a lot of data processing, a Pi would be more useful (as the memory (and processing power) on an Arduino is rather limited). Of course, you could use both, with an Arduino monitoring sensors and feeding that data back to the Pi for processing and display on a large monitor.

Depending upon your requirements for quantity of IO ports, you can make large or tiny devices (using large (Arduino Mega 2560) or tiny (Arduino Micro) Arduino based boards respectively), or just the ┬ÁController IC itself with a few extra support components (two capacitors and a crystal), and the the components for your project (i.e. LEDs, speakers, sensors, or what-have-you).

Finally, Arduinos can be a lot cheaper than Pi - if you go for the Chinese clones, they can be found for a few dollars, and work just as well, in my experience.

Either way, in addition to the very good Arduino and Pi support sites, both Pi-SE and Arduino-SE are excellent Stack Exchange sites, right here, as well.

If you really need faster devices then look into FPGA, but that would seem to not be necessary for you yet, nor is it really for beginners.

| improve this answer | |
  • $\begingroup$ How is your answer related to the question? Switching to another board might be OK, but OP asks how to create the electronics which he wants connected to the board. Your answer is mostly an advertisement to Arduino and writing software. $\endgroup$ – virolino Aug 25 at 11:08
  • 1
    $\begingroup$ The OP seemed to be asking about how to get into electronics and whether a Pi kit was the way to go. The examples provided with Arduino generally aid towards a general understanding of electronics (as do the Pi kits admittedly). So, as the OP was considering a Pi kit, but also asking for any possible alternative, I thought I'd offer my suggestion as to why the Arduino would seem to be a better alternative, for their case. $\endgroup$ – Greenonline Aug 25 at 11:34
  • $\begingroup$ TBH, to quickly learn about electronics, either Pi or Arduino would seem a better alternative, rather than purchasing a copy of Horowitz and Hill and going down that route alone... unless they have three years to spare... :-) Of course, it's always a good idea to have a copy of that handy, at any rate. $\endgroup$ – Greenonline Aug 25 at 11:42
  • $\begingroup$ I fully agree with you, doing smth practical can be faster and more fun, rather than going through the hassles of "ugly" formulas. My point was that just having whatever board will not teach OP about impedance matching, the reactive impedance of the PCB depending on the data lines - which has to be counter-measured etc... That is why I would not give OP false hopes. $\endgroup$ – virolino Aug 26 at 5:29

where do I start with the electronics?


basic accessories and peripherals like cameras, speakers/headphones, lights and some external buttons/controls - Like a helmet with front and rear camera, headset/speakers and physical volume/call controls or buttons

While it would be easy for anyone to connect some button to an electronic device successfully, peripherals like video cameras, network communication, etc., use very high frequencies, which pose very tricky challenges.

Possible solutions:

  1. (long learning curve) Actually learn electronics, from the ground up. You will be able to design your device by yourself. Learn the basics (you might already know them), and then concentrate on the details that you actually need. Ideally, you learn the theory too, but it should be enough (for the beginning) to concentrate on the practical stuff.
  2. (almost no learning curve) Team-up with a friend/colleague, who already knows how to design electronic circuits.
| improve this answer | |

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