Monday, February 29, 2016

Two Raspberry Pi 3 Hardware Hacks

No sooner has the Raspberry Pi 3 been released, let's see about making it better. I'll point out a couple of items not widely discussed that may lead you to your hacking.

Unpopulated uFL Connector


The Raspberry Pi 3 has built-in Wi-Fi and Bluetooth.  The standard antenna is a board mounted chip connector circled in red on the front side of the board below:

Front View
And look on the back below.  The red circle shows the blank PCB area opposite the front chip antenna (you don't want parts here to avoid interference).  All good.

Rear View
Now look at the 2 copper pads marked J13 circled in orange. The area between the copper squares is about the same area that would be occupied by a uFL antenna connection.  What type of connection is that? uFL connectors are very small surface-mount parts used when an external RF antenna is desired. They used on GPS and Wi-Fi boards.
Close-up of pad J13 and a uFL solder connector (not to the same scale)
The solder mount uFL connector shown at right above are available for around a dollar at many electronics outlets.  Most of those same outlets have inexpensive external antennas to connect to the uFL connector. Be careful, these connectors are somewhat fragile (they bend or crush if the mating plug is pushed on wrong). You can also find uFL to SMA and uFL to RP-SMA adapter cables to use larger antennas or use panel mount antennas.


Touch Screen Connector


The rear picture above has a spot shown in yellow.  This is opposite the HDMI connector on the front.  It is not shown with any part soldered there above and on the Raspberry Pi 2.  But the FCC testing picture of the rear shows a ribbon cable connector on the board.
Leaked Raspberry Pi 3 FCC Testing Board with Populated Connector
This connector is similar to the one used on the interface board for the Raspberry Pi official 7 inch touchscreen display.  I suspect this is for a touch interface but it is not documented or labelled.  Other iterations of the Pi have had test points here.  Why does this get so much attention but no parts or documentation?  It's up to us to us. Do note that hardware modifications may void your warranty or change the wireless certification. . .

There is so much potential to this third generation board.  Let me know if you have found things to do with it.

Tuesday, February 23, 2016

Arduino.cc Discontinues Selling the Arduino Due

Photo credit: Adafruit

In a post on the Arduino.cc developer's email list, team member Massimo Banzi stated on February 23, 2016:
When we rebuilt our manufacturing network we took the chance to redesign the product line to simplify it. We also had to decide the sequence of release giving priority to products that are most popular. Having said this we see an interest for the Due from the resellers and we’re working on a solution. In the meantime the SAM core is still supported and it’s getting updated even if we’re not selling the hardware.
He goes on to clarify:
Arduino/Genuino doesn’t sell the Due full stop.  There is a number of companies using the Arduino name and logo around the world who make boards that are called Due. As I said we’re evaluating an improved product for this market segment. 
So:

1) Software Support: No worries, the Arduino.cc IDE has support for even ancient Arduino versions listing "Arduino Duemilanove or Diecimila" and "Arduino NG or older" in the current IDE.

2) Due Chip: may possibly be on future Arduino.cc products but not the exact Due board.  Atmel also makes many variants of their chips allowing board designers to have flexibility in choices.  Time will tell.

3) Due Board: Will not be sold by Arduino.cc or under the Arduino or Genuino brands.  Any new boards will most likely be from Arduino.org or Chinese clones. The ecosphere is still free to sell derivative Due compatible boards which should be around for quite some time.

The Arduino.cc website still lists the Due in the shop but "Out of Stock".  Banzi posted the website will be amended soon.

Thoughts?  Does this complicate your decisions or do the capabilities of new boards like Arduino Zero and Arduino 101 fill the void?


Saturday, February 20, 2016

The ATN Pin on New Arduino 101 and Arduino Zero

If you look at the pictures of the new Arduino (.cc) Arduino/Genuino 101 and Arduino/Genuino Zero, next to the IOREF pin you will see a new pin.  Formerly undefined on AVR (ala Uno) style Arduinos, the pin is now labelled ATN.


Currently there is not much information on use for this pin except one forum.arduino.cc thread. There, Cristian Maglie of the Arduino team explains:

The ATN pin is an experimental feature we're introducing with the Arduino Zero.
Many shields and expansion modules use an SPI communication protocol and this always requires electing a pin to act as  "chip select" effectively making one extra pin unavailable. On processors that have more than 28 pins there are usually extra unallocated pins that can be used. We decided to experiment and allocate a pin to act as the default chip select for the first shield/module on the bus.
We're going to issue a more formal "application note" to explain some of the new features provided by this pin. For now just treat it as one extra pin available for you to use.
In the Arduino IDE, it is defined as ATN when you select a board that supports it.

Use


SPI use on Arduino is discussed in this reference.  TO use SPI, you connect to the SPI bus, often on the ICSP connector.
The only pin that is needed but not on this header is the Select line to select a particular SPI device on the bus (often called a Slave Select or SS pin).  For this purpose on most boards, you can use any digital or even an analog pin.  But this will take away a pin that could be otherwise useful in your project.

As modern processors have alot of digital pins, more than are used on the standard Arduino shield pinout, a extra pin has been provided for your use, ATN, ostensibly to help you use that as the SS pin function freeing the digital pin you might have had to use for other uses.

More will be posted when use of this pin is more widely published.



Saturday, February 13, 2016

New Tutorial: Speech Synthesis on the Raspberry Pi Made Easy

My latest tutorial is now posted to the Adafruit Learning System.  Speech Synthesis on the Raspberry Pi makes it easy to add speech to your next Pi project.


There are several demonstration examples in the tutorial here.

Wednesday, February 10, 2016

Board generic (platform esp8266, package esp8266) is unknown

Today's time to update my Arduino IDE (arduino.cc) to version 1.6.7.


With the new environment, I needed to update the Boards Manager to add support for the latest and greatest boards.  Adafruit has introduced some nice boards including their Feather line, which I want to work with.  So I update the Adafruit AVR boards, then the ESP8266 Boards.  The ESP support requires a download of 153.5 megabytes.  Wow.  I mistakenly interrupted the download to do something else.  Mistake!

When I needed to program an ESP device, I redid the ESP board support.  But every time I tried to program any sketch, I got the error message:

   Board generic (platform esp8266, package esp8266) is unknown

Uninstalling and reinstalling the IDE did not help.  I finally resorted to a Google search and found this Wordpress blog post.  Thank you!

So for Windows:

  1. Close the Arduino IDE windows that may be open.
  2. Go to the directory C:\Users\yourusername\AppData\Local where yourusername is the user name you are logged into.  
  3. Copy the preferences.txt file in the Arduino15 subdirectory somewhere like your Desktop
  4. Rename your Arduino15 directory to Arduino15-old.  Create a new Arduino15 directory and copy back the preferences.txt file into the new (now clean) Arduino15 directory.
  5. Now you can open the Arduino IDE and it will be clean of any board preferences.  Go to Tools -> Board -> Boards Manager and add support for the boards you want to use (such as ESP8266, etc.)
Now, if you by chance don't see the ability to add ESP8266 support or Adafruit support, you need to add something to your preferences.  Open File -> Preferences.  On the line Additional Boards Manager URLs: add the following text all on the same line:

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json,http://arduino.esp8266.com/package_esp8266com_index.json

Press the Ok button.

Now close the Arduino IDE and reopen it.  You should now see the additional boards that you may want to use.

Again, thanks to the ESP8266Hints blog for the pointers.