Creative Commons images are CC BY-NC-SA 3.0

34.95

added to your
shopping cart

quantity
28 available 28 in stock
34.95 1+ units
31.46 10+ units
27.96 100+ units

Description: The Fio v3 is a new spin on the Arduino Fio hardware powered by the ATmega32U4.Not only is it small and LiPo-ready, it's a very capable XBee-ready development board.

The JST-connector and 3.3v system voltage make this a great development tool for portable devices, simply plug in a Li-Poly battery and you're ready to go. Wireless sensor networks and communication are made easy by the on-board XBee socket.

The ATmega32U4, running at 8MHz, makes it possible for you to use the on-board USB jack not only to charge a connected Li-Poly battery but to actually program the device! Because this board uses a similar bootloader to the one on the Pro Micro, you will need to download and install the special software driver below. There's also a board definition add-on for the Arduino IDE which will add support for this board.

We've updated this to the latest version of the 32U4 firmware, see the firmware note in the documents below!

Note: See the GitHub link below for support with the Arduino IDE.

Features:

  • ATmega32U4 running at 8MHz
  • Arduino-Compatible Bootloader
  • XBee Socket
  • Lithium Polymer Battery Compatible
  • MCP73831T LiPo Charger
  • Reset button
  • On/Off Switch
  • Status/Charge/RSSI LEDs

Documents:

Replaces: DEV-11017

Comments 65 comments

  • There is a voltage divider on the output battery voltage before the switch. I noticed this was a comment on the previous model as well, and I believe that means the board will always be drawing current (a bit over 1mA depending on battery level since the total resistance is only 2k!). I understand the desire to measure battery voltage, but I question putting this divider before the switch, since when the switch is off the MCU can’t usefully measure the voltage. As for off-board measurement, I feel this might be better implemented with an unpopulated pad so the user can choose to add this measurement before the switch, not as the default state. Can anyone see a danger to removing these resistors/cutting the trace? That’s what I plan to do to keep sleep-state current draw to a minimum.

    • I have 2 fio V3 boards, current consumption is roughly 2mA when power switch is off. E.g. it is really unusable with 110mAh battery :(

      With original FIO the current consumption is 0.0uA when power switch is off.

      Member #401697: have you tried to cut the trace?

      Sparkfun: I would like to both measure the battery when device is powered and have long battery life when not powered. I guess that it is not possible? Or can some wiring be done with board to get voltage divider after power switch?

      Thanks.

      • The trace between pull-up resistor R14 and VBATT goes next to JP7 which is the external power switch. I think that by cutting pull-up resistor’s trace between JP7 and U1 and then connecting the trace to JP7 (to hole which is closer to USB connecter) it should be possible to get both zero power consumption when Fio is switched off and battery level monitoring functionality.

  • It appears that the VBATT_LVL pin is not correctly marked. To monitor the voltage from the battery you will need to use A11. You can use the following formula to determine the actual input voltage.

    (sampleValue * (3.3/1024)) * 2

    The sample value is the value from the analogRead(A11) call

    3.3/1024 obtains the number of mV/step. The DAC is 10 bit, so there are 1024 values available and the processor is operating at 3.3v.

    ½ the input voltage to the divider is sent to the pin per this wiki entry:

    http://en.wikipedia.org/wiki/Voltage_divider

    So in this case we multiply by 2 to reverse the division.

  • to use bluetooth module you need to do Serial1.begin NOT Serial.begin this took me forever to figure out

    • Same holds true for the XBee (or I guess anything connected to the “integrated” radio port). Does anyone know if this is documented anywhere? I spent a long time lost because I didn’t know this.

      • On the ATMega32U4 boards Serial is the USB port, where Serial1 is the hardware UART lines. So for anything other than USB you will want to use Serial1.

        • I can’t stress enough how this needs to be pointed out, bolded, and highlighted. This caused me a month of debugging trying to figure out why my xbee’s weren’t working.

  • What’s the pin spacing if I want to solder female headers for jumper cables and breadboards?

  • What is the purpose of the built in jumper between USB_VCC and RAW? If you plug in a battery, then turn the power switch to on, then plug in a USB cable, 5 volts is dumped onto the battery through F1. My Lipo got to 4.5 volts and started to get warm before I noticed this.

    • Yes there are a number of design flaws with FIO V3, see http://www.forward.com.au/pfod/ArduinoProgramming/FioV3/index.html for details. I am currently writing up a project that overcomes most of these, cutting tracks + extra components

  • is there any way to turn off all the LEDs on this board? its not so much about power consumption (though i imagine they do consume a measurable amount) its more about LIGHT - i am using this on a breath sensor used in sleep apnea studies and this thing generates so much light that I have had to cover each LED with blu-tack but its hardly professional looking.

  • As mentioned in the tutorial, the Arduino add files on do not work for Arduino V1.5. I have fixed this and put up a set of files that work with Arduino V1.5.5

    These are available from http://www.forward.com.au/pfod/ArduinoProgramming/FioV3/index.html

  • Have got two Fio v3 and both are detected by Windows as VID_1B4F&PID_0004 The drivers referenced here does not support this PID.

    Could anybody help to find correct drivers?

  • Device does not work with Windows 7x64. Drivers are not compatible with Win7 & XP and installable as “legasy software” only.

  • OK, for people having issues with this board running on Windows 7 (and maybe other OS’s), here is the problem I was encountering:

    When downloading the IDE restarts the board and it goes into bootloader mode. It only spends 8 seconds in bootloader mode before going back to the user program, which wasn’t long enough to force Windows to update the driver. The device would disappear before I got far enough to select the driver.

    Step 1: Open the .SparkFun ProMicro.inf file in an editor. Add the following two lines to the DeviceList and 64 bit DeviceList:

    %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_F100

    %DESCRIPTION%=DriverInstall, USB\VID_1B4F&PID_F100&MI_00

    Step 2: Save the file, open a command prompt (as administrator) and type: set devmgr_show_nonpresent_devices=1

    start devmgmt.msc

    Step 3: In the View menu, show Hidden Devices. Find the USB IO Device, right click and update driver. Select to open a driver on your computer, then select to browse for a device. Select the driver from Step 1.

    Now your device should enumerate and program correctly. Took me a full day of screwing around with it to get this right, SparkFun, please add the device id’s to your GIT download.

    • Hi, New to the proMicro and this forum. Followed all this but I’m still having no success uploading even the blinkies" example.

      I’m running XP Home, on an Atom based Acer netbook. The drivers for both the main port (COM16 in my case) and bootloader port (COM17) have been successfully loaded and the correct Addon has been installed as per Sparkfun’s instructions and Arduino forum posts on this problem. (I’m running V1.0.5 IDE with the Addon dated 24/1/2012) I’m using the recommended double reset press to get 8 seconds of bootloader port access. I’m using XP’s Device manager to see that the ports are switching correctly. They are (I’d estimate that COM17 is on for about 8 seconds)

      However, I’m finding it impossible to time the port changeover so that I can get the sketch uploaded:

      I usually time it too late & get a prompt to choose another port because port 17 doesn’t exist any more. If I leave it a little longer, the IDE reports a problem opening the port. If the upload does start, I get “avrdude stk500_getsync(): not in sync resp=0x3f”, which I assume means that the flash contents do not equal the program being uploaded.

      I’ve tried using your suggestions and updated the drivers to those on the Sparkfun site. Still no joy. Have I missed a step somewhere? Any help would be much appreciated.

      • Update on my last comment: Still no joy with Windows but very easy with the Linux version.

        Running Ubuntu 12.04 Using the standard package install doesn’t work, as this installs Arduino V1.0, which doesn’t recognise the PIDs for the ProMicro. However, downloading and unpacking the V1.05 gzip file to my home folder works fine. Put the Promicro specific hardware files into a hardware subfolder of the sketchbook folder and then just run Arduino from it’s current location. Compiles faster and doesn’t seem to need a reset to access the bootloader.

        Anyone want precise details of the steps I took, please post a reply.

  • I used the Fio with an XBee and motor driver chip to quickly prototype a small robot. More details here: http://mechinations.wordpress.com/2013/11/10/robot-prototyping-101/

  • Are the Status/Charge/RSSI led’s different colors? I ask as I’m probably going to light pipe them, and might use just one to cover all three if so.

  • Has any one successfully uploaded a sketch witlessly over xbee? If so a bit o help would be appreciated, all I get is: “avrdude: error: buffered memory access not supported. Maybe it isn’t a butterfly/AVR109 but a AVR910 device?”
    i can upload over usb but i would like to do it wireless.

    • You can not do wireless sketch uploading with these boards (well not without writing a custom bootloader). The XBees connect to the hardware serial port, but the code is uploaded over the USB port. Because those ports are different and the bootloader is looking for code on the USB line and not the serial line you can not upload code wirelessly to these boards.

  • I am fairly new to Arduino development, however I have been able to upload sketches to an Uno and a Micro. Unfortunately I cannot figure out how to upload to the Fio. I keep getting the following error message:

    avrdude: stk500_getsync(): not in sync: resp=0x00
    

    if I press the shift button while initiating upload I get: avrdude: usbdev_open(): did not find any USB device “usb”

    I have Arduino IDE 1.0.5 running on Windows Vista. I have searched the web and tried a ton of things. I have the right board selected (“Arduino Fio”) and I am definitely using the correct serial port.

    Any ideas?

  • Warning!! DO NOT run the standard BLINK example if you have a battery connected to this board. The output of pin 13 is connected to the output of the battery charger chip STAT and THERE IS NO CURRENT LIMITING RESISTOR.

    Excessive, damaging, current will flow when one output is high and the other low.

    Standard Arduino boards add a current limiting resistor between the two output pins when this situation can occur, such as with the RX serial pin.

  • I am unable to load the “blink” example on my fio v3. There is no error message, but no blinking though! Is fio v3 compatible with ide 1.0.3? What about Due?

    • Also, make sure you are trying to blink the right LED. The standard Arduino blink sketch is on pin 13, but on this board there is no LED on pin 13 (its actually connected to the battery)

    • The Due is only supported in IDE 1.5. As far as the Fio goes, if you aren’t getting any error messages, make sure you are selecting the correct board, as well as well the right pin in your code. Also make sure you’ve added in the board support files for the Fio (check the links above). If you are still having trouble after double checking these, please email techsupport@sparkfun.com. They’ll be able to assist you further than we can in the comments.

  • I have put up a tutorial on setting up the RN-42XV bluetooth module and the RN-XV wifi module with this board at http://www.forward.com.au/pfod/ArduinoProgramming/FioV3/index.html

  • I have an XBee radio that, when plugged into an explorer, is fully functioning. However, when I plug that XBee into my FIO v3, Serial1.available() always evaluates to false. On the FIO v3 I’ve also soldered an accelerometer in on the GND, 3V3, A1, A2, A3 pins and am able to read those values just fine via analogRead(). Another oddity I noticed is that even when I don’t do a Serial.begin() the Serial.println() commands I was using for debugging are still showing up in the IDE’s Serial Monitor when the FIO is connected to my machine via USB. Any ideas welcome on where I could be going wrong!

    • I discovered by slowing down the Serial1.begin from 115200 (a speed suggested by the XIG example) to 9600 that Serial1 is working fine for XBee communication =)

  • Unfortunately to fit my enclosure I have to remove JST connector, is it easy to desolder it ?

    • Looks like it’s a surface mount connector - shouldn’t be any hassle at all if you can heat up both pins at the same time or just put a bit of force on one side while heating that pin until it lifts clear, then do the other side.

  • I’m installing the Fiov3 Addon to Arduino IDE 1.5.2. My sketchbook location is /Users/myName/Documents/Arduino. After I extract the zip, should the path be /Users/myName/Documents/Arduino/hardware/Fiov3/boards.txt or should it be /Users/myName/Documents/Arduino/hardware/boards.txt? I tried both but don’t have Fio v3 appearing in the Tools->Boards menu. TIA!

    • Switching to Arduino IDE 1.0.4 did the trick with install path of /Users/myName/Documents/Arduino/hardware/Fiov3/boards.txt … would be nice to have the add on working in the latest IDE but I’m good for now, thanks to Ragnorok/BJfreeman/TechIsCool in #arduino on freenode!

  • I have bought a few Fio v3’s from Sparkfun now and wanted to interface it with an SD card and the Roving Network’s Wifi card so that I would have a fully portable web server.

    I notice that D12 and D13 aren’t pinned out and those are the SPI data lines I need to talk to an SD card with Lady Ada’s breakout (http://www.adafruit.com/products/254).

    Any way to talk SPI off of the Fio v3? Are they exposed somewhere in the X-Bee socket?

    Dave

    • Hi, Dave. Yes, the SPI port is brought to the pins D15, D16, D17, which are “virtual” on other Arduini but at the bottom of the two rows of headers on the Fiov3. Used them to talk to a CC1101.

  • I’m having great difficulties uploading a simple sketch to the Fio v3 and am getting conflicting advice which version of the IDE to use. I think I’ve now tried every conceivable combination of IDE, Addon etc but still have no luck. The best results seem to be with IDE 1.0.3 and the Addon installed in a directory called “hardware” in the directory of the Sketch, then selecting “Arduino Fio v3 (Leonardo)” from the Board menu. That allows me to compile the sketch without errors and start what seems an upload (observing a few blinks of the RX LED). The upload however hangs and the sketch does not start to run. I’ve tried pressing the reset button once and twice at various moments (before initiating the upload and after). I now have two boards, one where the ASO LED is blinking (about 3-4 times per second) and another where that is not the case.

    I’ve spend many hours on this now and I’m getting a bit annoyed (as you probably can imagine). Is it really that complicated to program a very simple sketch (the famous LED blink sketch) into an Arduino Fio v3?

    I’m using a linux workstation; the USB serial port is always recognised without fail after inserting the USB cable.

    Any advice is much appreciated.

    • You can find interesting explanation on this page http://cholla.mmto.org/computers/arduino/promicro.html, even if it is for the pro-micro, this is the same behavior for FIOV3. I have recently bought one, running under linux also, i use eclipse + avrdude or Arduino IDE as well to program it. I have now a little experience on this board an i can try to help you if you want. For example on Fedora the modem-manager http://forums.fedoraforum.org/showthread.php?t=252054 was disturbing the soft reboot (The “trick” of setting the baud rate to 1200 and then opening and closing a connection ). The better for going on is that you open a topic on the https://forum.sparkfun.com

  • For some reason the IDE changed the selected board to Arduino Fio instead Fio v3 (Leonardo) when I was uploading code. Now it doesn’t work, it still upload code but doesn’t work correctly, plus TX/RX leds doesn’t blink in the process… Any solution??

  • Trying to simply get a WiFly to work with this Fio (V3). It would seem simple serial communications should not be that difficult. I’m evidently making this too hard or missing something fundamental. Here’s my simple sketch just to get it to join my network. Any feedback on what I’m doing wrong?

    void setup() { Serial.begin(9600); delay(500); Serial.print(“$$$”); delay(100); Serial.println(“set wlan ssid thisismywlan”); delay(100); Serial.println(“set wlan pass thisismypassword”); delay(100); Serial.println(“save”); Serial.println(“reboot”); }

    void loop() {

    }

    • So…it turns out there really is no problem with these two playing well together if you realize: 1) The XBee socket is accessed via Serial1, not Serial. I had tested this proposition earlier, but was fooled by the second issue. Also, it’s not documented anywhere I can find above in the product description - something I’ve suggested Sparkfun may want to consider. Based upon reviewing these comments as well as the ones in the forum, lots of folks have stumbled on this issue when trying to talk to Xbee socket devices of various flavors. 2) When putting the WiFly RN-XV into command mode, provide sufficient time for the commands to execute and respond. Once I allowed 1 second to elapse after each sent command before reading any output from the WiFly device, I was in great shape.

      I hope this feedback helps someone else facing the same apparent dilemma.

      On a final note, Sparkfun Tech Support was very helpful in working through the issue with me via email. My thanks in particular to Michelle who even took time to mock up what I was attempting and came to the same conclusion, coincidentally at just about the same time.

    • From a quick look at the schematic, it appears that the XBee socket (WiFly) is on the second serial port not the USB port. I recall reading that there is support for the second serial port by calling Serial1.begin and Serial1.print (note the subtle numeral 1 at the end of “Serial”). I might not be remembering this right, that is, I might have the ports reversed. Double check the documents before changing your sketch. If it’s not in the documents for this product, take a look at the docs for the Pro Micro (DEV-11098) they use the same microcontroller. In particular look at the “Getting Started Tutorial”.

  • Hi,

    I recently bought an Arduino Fio v3 and XBee Series 1 I’m trying to establish 2-way serial communication between the Fio/XBee and another XBee connected to USB Explorer and my MacBookPro.

    However so far I’m only able to establish 1-way communication. Meaning I can send commands e.g. 1, 0 to the Fio/XBee and make it switch on/off the onboard LED. However I’m unable to receive any communication back from the Fio/XBee.

    TX LED on Fio is always on RX LED on Fio is always off. ASO LED is blinking indicating established connection. RSSI LED lights up when sending commands to the Fio/XBee.

    I connected the XBee to another Arduino UNO with regular XBee shield and 2-way communication is possible without any problem. Which made me exclude any setup error on the XBee side.

    I configured serial communication on the Fio/Xbee to use Serial1 (which supposedly sends it directly to XBee vs USB). If I use Serial it sends communication back to my Mac via the USB cable which crashes my Mac after a short period of time. Fio is currently powered by either USB to my Mac or external USB power supply.

    Any advice would be appreciated.

    Best, Daniel

    • I’m using fio v3’s and xbee series 1. I’ve got many of them scattered around transmitting environmental data and gps. I’m listening to the xbee comms with an xbee and xbee explorer connected to a beaglebone and one on my Mac. I have no problems with comms other than when I use xbee and USB comms at the same time. For example if I write to Serial1 while plugged into USB on my Mac I can actually reliably crash my Mac. Yup, serial driver panics and takes out the kernel. I don’t transmit the other way yet though.

    • Hi Daniel, i am facing exactly same problem as you, only one way communication possible between FioV3/Xbee S1 and UNO/xbee . Unable to send from FIOv3 , RX led always off and ASO led blinking. i am running under linux and i can get data on Serial port. Do you have solved your problem ?

  • Any idea why using pins D2 and D3 for software serial rx/tx would work just fine on the UNO but aren’t working on this v3 Fio? I’m trying to get the Fio to talk to the Atlas pH board. It works fine on the UNO but the pH board doesn’t respond to any commands like the UNO does.

    • Yeah, I don’t think 2&3 are software change interrupt pins on the fiov3. I’m using D9 for rx from a GPS and it’s working for me at 4800 baud.

  • Has anybody had any luck installing the new drivers/updates on Mac OSX? I put the folder in the sketchbook folder per the readme.txt file but don’t see the new FIO (leonardo) version in the board list. Any suggestions? Thanks.

    • turns out you have to dig deeper into the folder system and find the similar folders under the application. Add/replace the current folders into those existing ones. Also, had to append the text from the boards.txt file to the original.

  • Love the board. Worked perfect for an art project. This is a really great solution, particularly because of the ability to generate USB keyboard and mouse events. It would be nice to be able to use all 12 analog inputs. One is dedicated to the battery level monitoring. It would also be nice to have examples of using 2 of these and 2 x-bees for the first timers. A simple USB Serial to X-Bee echo program would be useful.

  • I see more pins on this Fio v3 than on the Arduino Fio. I can’t find a definition of which pins are capable of PWM. Can someone help with that please? TIA.

    • PWM ports on the Fio v3 are marked with a ~ next to the pin number. They are pins D3&D5 on Timer0, pins D6&D9 on Timer1, and pins D10&D11 on Timer2. I have also been looking for a pin and port map of the Fio v3 without any luck. I am in the process of making my own and will post it when complete. I am using pins D9, D10, & D11 to drive 3 DC motors. I chose those pins since I could change the timer settings without interfering with the Timer0 which is used for things like the millis() function and the delay() function.

      • Thanks. I’m using some sample code from PulseSensor.com and it uses an Interrupt, Timer2, but they’re saying it disables PWM on pins 3 and 11.

        I’m considering using the TLC5940 to get 2 functioning sets of PWMs for 2 RGB strings.

        The question becomes what I can do with code that uses Timer2 and can still talk to the TLC5940 on alternate pins other than 3 and 11.

  • The schematic shows that there is a resistor dividor circuit to monitor the battery voltage from what looks like Analog pin 10. Is this correct, do i just need to set an analog read of pin 10 (which i assume will read that pin 10 not the normal digital 10) to read this voltage?

  • Did you change any of the contents of the “Arduino Addon and Driver Files” recently (last week)? Magically, I can’t upload anymore code to my board. It fails with the same error that’s been described when the ProMicro addon stuff was broken (http://arduino.cc/forum/index.php?topic=111213.0). This happens on Windows as well as on Linux.

    It’s been already working however, so I would exclude the bootloader version as a reason.

    I can’t track it back to a change in the addon files (no backup of old stuff here). Yet I’m pretty sure I’ve seen that pins_arduino.h in the prior version had an error in the SPI mapping. The moment I did a fresh Arduino IDE (1.0.3) and addon code install (yesterday) matches pretty much the point where it stopped working.

  • I was able to upload once to this board, but now it won’t even show up as a serial port. What do I do? I think may have used the Arduino Leonardo as the board type instead of the Sparkfun version. Is there a way to recover from this?

    • This exact same problem happened to me, I selected the wrong board and it successfully and it would detect it anymore. The way I fixed it was I used Ubunutu and managed to upload code on it again.

  • I am having trouble getting this to work with XBee XSC S3B on peer-to-peer (transparent mode). The x-power is set to lowest and loopback test with x-ctu showing the chips to be in working order. Any ideas on what might be wrong?

  • Would you clarify “Fio v3 is not yet compatible with the Arduino v1.0 IDE” I’ve been using the original Fio with the Arduino IDE and have not had trouble. Is this incompatibility new to this version of the Fio?

    • It is because it uses the ATmega32U4 which has usb support built-in. This is not supported as yet but will be in the future. It really is no big deal.

  • NEW FIO! Been waiting for this.


Related Products