No more IoT tears – how to upgrade the Arduino Wifi Shield painlessly from a Mac

Alex JonssonBlogs, Tutorials

Screen Shot 2016-02-17 at 11.50.23
Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+

reset--buttonOk, so you got the message in the Arduino SDK saying “Please upgrade the firmware” or “WiFi shield not present”, then it’s time to carry out an upgrade.
Don’t worry, everything you need is in the Arduino SDK package already on your computer. You’ll need to use the terminal, and to have root access
to your computer. This how-to is on how it’s done on a Mac, but you’ll hopefully find it useful if you’re on other computers too. I’m taking it step-by-step so also newbies can do it without calling their IT support, dad, son or 10yo neighbour’s kid.

This is how to go about it:

  1. Set the jumper J3 (see pic) by bridging the two pins with the plastic connector. Then connect the shield (not the Arduino) to a mini USB 5 pin connector cable (a.k.a B5), the Arduino can be unplugged while you don’t need to take the shield off physically, plug the other end in the computer. If the red LED goes on, you can press the shield’s reset button – the white button in the upper-left corner of the shield.
  2. Open the Terminal.app on your mac, go to the upgrade script: In my installation, the scripts for upgrading hardware was found here (my commands in bold typeface):
  3. cd /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/firmwares/wifishield/scripts
  4. Once in that directory, make the script executable with the chmod command, you will need to be root or a user with admin privileges to carry out this operation:
  5. sudo chmod 770 ./ArduinoWifiShield_upgrade.sh
  6. You’re now ready to run, take a deep breath. You can either only upgrade the shield (-f shield) or both the antenna firmware and the shield (-f all). My Arduino installation carrying the /hardware folder and its scripts, firmware et cetera is located at /Applications/Arduino.app/Contents/Java/ which you also need to state, as it defaults elsewhere. This is the command to use. Check with pwd command that you’re in the scripts folder, or it will fail:
  7. pwd
    /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/firmwares/wifishield/scripts
    
    sudo ./ArduinoWifiShield_upgrade.sh -a /Applications/Arduino.app/Contents/Java -f all
  8. Follow the on-screen guide in the Terminal window, press RETURN and the reset button when asked, and you’re done. Unplug the mini USB from the Wifi Shield, and resume normal operation.

This guide has been inspired by this webpage on upgrading the shield firmware, along with some trial-n-error so you won’t have to. This link also describes how to install the dfu-programmer executable if you don’t have one onboard.

Once you’re done with upgrading the shield, there are some fine examples of Evothings technology that you can try out for connecting your Arduino to a mobile phone over wifi, using HTML5 and javascript.

  1. Turn a LED on/off, controlled from your Android/iOS device
    evothings.com/doc/examples/arduino-led-onoff-tcp.html
  2. Control a Lunar Lander game using an Arduino as game controller
    evothings.com/controlling-a-javascript-game-on-your-phone-from-the-arduino/

More examples and tutorials for connected things can be found under evothings.com/developer

estimote-beacons-group-small

Eddystone is coming, opening up the beacon space

Estimote, Kontakt and Radius Networks are upping their hardware offerings, here’s some things you need to know.
Read more→

cloud_two

Evothings Studio is coming cloud-side

Evothings Studio 2.0 is a Saas solution, bringing on a wide array of possibilities for the IoT developer. Join the growing community and learn more about the benefits of using Evothings Studio for IoT app development.
Read more and download→

appstore_whirl

Ready for app stores with Phonegap Build

A simple way to build and sign your app for publishing, is via a build service. Adobe’s Phongegap Build is one for the candidates.
Read more→