I do lots of work with Arduino units and generally I always buy one or two "real" ones, because I want to support the product team and I also want to have the real thing around in case a clone goes bonkers and I need to decide if it is my code or the hardware which is at fault. But, over many years, it has always been my code. The hardware seems to be rather rugged and well built. Even those female header connectors have held up rather well over time.
With the release and my purchase of the new Raspberry Pi Zero-W, I have also purchased the low-end RPi Zero and the higher end RPi 3. The hardware looks to be very well manufactured and while I utilize a UV adhesive to reinforce the HDMI and USB connectors, essentially I have no fault with the design. That is until I decided to build a small breakout unit and do some GPIO programming on the Zero. Obviously, some engineer decided to be different than Arduino and use the male header pins rather than the female. This may sound like a petty complaint, but I will take bets of some folks fumbling around on those 40 pins trying to attach wires and shorting out something - the likely ramification being a fried Pi.
Is this not more sensible?
I always, always, always build at least one semi-permanent project breadboard around an architecture. For inexpensive microcontrollers such as 8-bit Arduino, 32-bit STM32F1xx, 32-bit ESP8266 all of which are just a few dollars each, these breakout boards rarely total more than $10 total. It is far easier after a year or two to pull one of these units from the storage shelf, plug it in, an the prototype is up and running before the Arduino IDE boots!
I usually start with a trip to WalMart or the "dollar store" where I walk over to the kitchenware section. There is a variety of plastic serving board and more expensive waxy cutting boards. I'm cheap, so I usually settle on a $2 board like the one in the picture below.
Depending on the intended project lifespan, part attachments can be Velcro, hot-melt glue, epoxy, or if using thicker boards, screws can be countersunk. In the picture, the Velcro works very well.
This entire article started with the idea of using C/C++ and any of the available GPIO libraries for the Raspberry Pi to do some basic LED blinking. For this project, I picked a common anode RGB LED from the parts bin, added in 3 (three) 330 Ohm resistors and picked up a few jumper wires. Add a little code, and we have blinkin' LEDs.
I previously wrote about my first impressions with the Zero-W which were generally favorable, but not glowing. But after working on the breadboard with the Zero, I found a lots of deficiencies in capabilities; primarily in connectivity. Replacing the Zero in the breadboarding environment ($5 ---> $10) and adding a rather wonderful HDMI display that I found on Amazon for half-price, I am now far happier. While I did not activate the touch-screen on the LCD, I simply love having the boot-up display available for console work and as a quick view device.
I still need a larger screen to do any serious programming and I found that my Nexus 10 Android tablet running VNC (free version on Play Store) worked very well. I have a "hacker's keyboard" app installed on the tablet, so control characters are easy to type - a necessary feature when in the console screen. As the "W" also has Bluetooth, I paired my portable Bluetooth keyboard too. This makes a very useful addition as the unit I own has both a keyboard and a track pad and works flawlessly using the generic Bluetooth stack of the RPi.
Lastly, since I am coding, compiling, and running binaries directly on the RPi Zero-W, I found it necessary to extend the reset line to a pushbutton on the breadboard (panic button just right of external USB hub). While I was building out this development "board" (pun intended), I also added a $3 FTDI-clone serial-USB module (absolutely must support 3.3V) so that I can log into the serial console if the "X" desktop completely crashes (which I found useful on more than one occasion). The serial-USB external adapter easily supports the default 115200 BAUD serial speed but can be lowered if you have on-hand older hardware that requires a lower speed conversion.
- On the USB-serial module, the Vcc pin is NOT connected, only Gnd, Rx, Tx
- The HDMI LCD is being power feed from the external USB hub
- The USB hub is powered by the Raspberry
- Total current does exceed 800mA and averages 500mA - 700mA
- Use care with USB adapters: consider a powered USB hub if needed
- An Android tablet/ smartphone works great as a VNC terminal
- HDMI LCD requires advanced skills to install and use the digitizer
I want to call attention to the bold line above. I have a RPi 3 where I use the same display with the touch screen active and I spent many hours finding a proper methodology for installing the required overlays to current shipping Raspbian; that is, to get the digitizer to scale with a lower resolution which would also respect the calibration utility. It can be done, but be prepared to spend a bit of time. Additionally, unless you properly configure the Jessie version of the OS, you will loose your settings on the first update! For the brave: here.
Please note that embedded links to products I personally own are not a recommendation. You should search and compare and select products for your specific needs.
Update Atlanta, GA 2017-05-26
7" 800x480 run in HDMI mode 87 (Raspberry Pi Configuration.) Sourced through Amazon.