Monday, February 22, 2016

YellowJacket Arduino with WiShield Wifi (Part 3)

YellowJacket Board Setup — 
The YellowJacket board is a self contained Arduino, much like the Sparkfun Arduino Pro Mini 328 – 5V/16MHz, but the YellowJacket includes the DTR Reset pin on the programming header. The user Arduino sketch which #includes the WiShield software sets the ip address for the wifi backpack.
Initial Set Up
1) Solder header pins to YellowJacket (YJ) board. A set up 6 long header pins, bent to 90 degree angles were soldered to the YJ board for connection to an Adafruit FTDI Friend programmer through USB to a Mac running the Arduino IDE. The FTDI programmer provides +5V from the USB connection to the YJ board. The YJ board converts the +5V to +3.3V for the MRF24 wifi backpack. Both +5V and +3.3V are connected to their respective pins near the header pins on the YJ board. If RAW (>+5v) is provided to the YJ board on the RAW pin, that voltage will be converted to +5V and +3.3V in addition to any power from the FTDI/USB port.
2) Wired YJ to Adafruit FTDI Friend for programming using 6 wire FTDI connections. The two GND pins on the YJ header are connected on the YJ board which shorts the FTDI Friend CTS and GND pins together.
YJ Header Pins        5V - Gnd - Gnd - Vcc - RX1 - TX0 - DTR - 3.3V
                      NC    |     |     |     |     |     |     NC
UNO pins                         GND    5V   RX0   TX1   Reset
Adafruit USB-FTDI Cable:   Gnd   CTS  VCCOUT  TX    RX   RTSDTR
3) Plug YJ FTDI cable into USB and program vanilla example “Blink” sketch. The YJ red power LED lights when USB power is applied through the FTDI programmer. The Arduino Blink sketch was compiled in the Arduino IDE and loaded over the USB-to-FTDI programmer connected to the YJ board header. The FTDI RX/TX LEDs blinked as the Blink program loaded with no compile errors and then pin 13 LED blinked on/off. This basic Blink app indicated that the YJ Arduino board was operational.
The dedicated FTDI/USB programmer, shown here connected to the YJ57 board and shield, was an additional expense but it was a great time saver during software development and testing.



Alternative Programming Method Using an Arduino UNO as FTDI to program YJ:
Ref: http://www.instructables.com/id/Arduino-Examples-2-Use-an-Arduino-as-a-FTDI-Progr/
Using the steps outlined in the referenced instructable, an Arduino UNO with a socketed microprocessor chip (not soldered surface mount) can be used as an FTDI programmer if a dedicated FTDI programmer cable is not available. First, wire Uno to YJ header:
  • Arduino UNO pin: Gnd  Gnd  5V  RX(D0) TX(D1)  Reset
  • YJ Header pin:   Gnd  Gnd  5V  RXI    TXO     DTR
AVRDude Problem uploading sketch to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
Solution was “You must remove the atmega328 from the Arduino UNO or the programming will not save on either device.” Use care to lift the atmega328 processor chip from its socket on the Uno without severely bending the pins and store it in a safe place.
YJ Programmed with “Blink” sketch: The solution to the above errors was to remove UNO CPU chip and then the YJ programmed “Blink” without errors. The Pin 13 Green LED began blinking on/off. Changing Pin 13 to Pin 9 in the sketch will blink the YJ Pin 9 Green LED.
  • Pin 13 Green LED blinks several times while the YJ is programmed.
  • YJ Header GND pins are connected on board.
  • YJ Red power-on LED is lighted when 5V power is provided through the USB cable.
  • YJ Pin 13 blinks the Green LED next to the RESET push button.
  • YJ Pin 9 blinks the Green LED second from the RESET push button and closest to pins 12 and 13.
Wiring the YJ Arduino Pins and Shields
Pins – Four types of pins are used for shield construction, and the terminology can get a bit messy. There are Male-Male pins and Female-Male pins. Male-Male pins are straight wires on both ends with a piece of plastic which will hold the pins at a fixed spacing of 0.1″ which neatly fit into the 0.1″ hole spacing used in most shields. Female-Male pins have a Female socket on one end to receive a Male pin or jumper wire that has the insulation removed. Kits of jumper wires of various lengths and colors that push into the female header or slip over the male pins are handy for prototyping circuits. Left to right in the photo: female header, stacking header, male header, and extra-long male header.
YJ56 – In addition to the 6 programming header pins and the +5V and +3.3V pins, the YJ board has holes for 12 pins down both sides of the board. On the board named YJ56, stacking headers with long pins were soldered on the YJ MRF24 side of the board so that the long headers could be pushed into breadboard sockets that would receive the pins. The breadboard can be used to easily wire additional components  for prototyping circuit designs. The breadboard was taped onto a blank Arduino shield that had long headers with female sockets that backpack onto other Arduino shields.
 The YJ56 board uses female stacking sockets with long male pins along the sides of the board. The sockets with long pins were soldered on the bottom (MRF24 side) so
they could push into a breadboard for prototyping circuits. The FTDI header pins (photo bottom edge) are bent at 90 degrees to attach to the FTDI programmer 6-pin socket. These pins can not extend into the breadboard since the breadboard shorts these sockets together across the breadboard. Wires are used to make connections from the YJ56 sockets to the red shield sockets that stacks onto other shields.

Side view of YJ board with stacking pins soldered through YJ and pushed into breadboard. The breadboard was taped to a shield for prototyping circuits. The breadboard is just wide enough to accept the pins from the YJ board. Wires provide the connections between the YJ board and the shield.

YJ57 – The YJ57 used a different, more permanent design by using short header pins on the YJ board that push into a shield made with short female stacking sockets that receive the YJ57 pins. The YJ57 shield used stacking long header pins to backpack onto other Arduino shields, such as, SD memory shield, Sensor shield, and LED display shield.
On the YJ57, short header pins were soldered on the YJ Arduino side of the board with long side down from the Wifi backpack side of the board. These pins plug into the center sockets on the shield. The FTDI header pins are long pins bent at a 90 degree angle on the top of the board for the FTDI connection. The straight header pins on the bottom side of the board make the wiring connection for FTDI and +5V and +3.3V to the YJ57 shield.

The YJ57 shield was created with female socket/long male header pins so it could stack with other Arduino Uno shields. Inner short female sockets were installed to plug in the YJ57. Wires were solder on the top and bottom of the shield to make the pin-to-pin connections between the YJ Arduino pins and the shield pins. The 5-pin female socket on the top edge of the board are shorted together to provide a tie point when multiple wires need to share a signal.

This image shows the YJ57 board backpacked onto the shield which can be stacked with other Arduino shields.




(Feb 22, 2016)

No comments:

Post a Comment