Creative Commons images are CC BY 2.0

Description: The Qduino Mini is a tiny, Arduino-compatible board with a battery connector and charger built-in as well as a fuel gauge that can tell you when to charge the battery! This little guy is super small, inexpensive, and is perfect to embed in your electronics projects. The Qduino Mini is the same model awarded to its Kickstarter backers and is Arduino-compatible and 100% open source, meaning that making and programming your first circuit is a breeze.

Here’s what the Qduino includes:

  • Battery Charger Circuit - just plug in a USB the battery starts charging with the auto switching circuit - there’s no extra charger needed and no digging the battery out of your project so you can charge and program at the same time over USB!
  • Battery Fuel Gauge - guessing on when your project runs out of juice? We’ve got you covered - we have a simple monitor library for your battery so you can remind yourself when it needs that little extra power.
  • Ultra small, Ultra thin, Ultra light - The Qduino Mini itself is 0.8in x 1.5in (2cm x 3.8cm) and 0.125oz (3.5 grams), perfect for quadcopters, drones or high altitude balloon projects.

Additionally, each Qduino is also breadboard compatible and has two RGB LEDs. One for status and another that is user programmable!

Note: Please be sure to double check your board type before uploading to make sure you have “Qduino Mini” selected in the IDE. Otherwise, you could potentially brick your new Qduino board.

Note: A portion of each sale is given back to Quin Etnyre of Qtechknow for continued development into the world of electonics.


  • ATmega32U4 Processor
  • 32KB Flash Storage
  • 2.5KB SRAM
  • 3.3V @ 8MHz
  • 26 Digital I/O // 13 Dedicated
  • 12 Analog Channels // 6 Dedicated
  • 7 Digital I/O also PWM channels
  • SPI, I2C, UART available
  • Two RGB LEDs built-in - one for: Charge Status, TX, RX, and the other user programmable
  • AP2112K 3.3V 600mA Regulator
  • MCP73831 LiPo Battery Charger
  • MAX17048 LiPo Battery Fuel Gauge


Recommended Products

Customer Comments

  • Hi. Have any of you used this with a LiPo and solar panel? Can it manage charging of the battery when possible and switching to just battery when solar power supply is low?

    • We haven’t tested a LiPo and solar panel, but theoretically it should work. The solar panel should be hooked up to the USB pin (5V preferably, I would have to double check for higher voltage), and then it would charge the battery when there was sunlight. If there is no sunlight / solar supply is low, it will run off of the battery instead without having to manually switch the connections. The Qduino’s ‘preferred’ place where it gets power is the USB connector / USB pin, and its ‘backup’ is the LiPo battery, in other words, it will always automatically switch to the higher voltage (it will always run off of the 5V USB connection instead of the 3.7-4.2 volts LiPo battery connection).

      • I haven’t tried this, but did some quick research. If you want to protect your battery you would ideally run this power through the LiPo charger. This is trace broken out and labeled VBUS. This is as Quin explained. The issue here is that the VBUS pin on the ATmega has an absolute maximum rating of +6.0V. Keep this in mind. Also consider using a Schottky diode to prevent running power into the solar panel.

      • (when the USB connection / solar panel is connected)

  • Quick question, according to the schematic the Vcc pin can provide 600 ma at 3.7 volts. Is this a correct interpretation of the documentation? Would drawing 400 ma - 600 ma from the Vcc port damage this board?

  • Does the Qduino cut itself off under a certain voltage (of the battery) in order to prevent the Lipo to be over discharged (and damaged) ?

  • Hi. I’ve got a project set up with a Qduino that’s trying to use Mozzi for audio. It’s working with Arduino 1.6.4, but the sound is awful. After struggling with things for a while, I realize that (for some reason) Mozzi doesn’t work well with the recent Arduino IDE’s. Can someone give me some pointers on how to set up 1.0.5 to work with the Qduino.

    I’ve grabbed the installer files, and have tried moving them into the appropriate places inside Arduino 1.0.5. I see qduino on the boards list, I can compile: but it’s not uploading. I suspect this has to do with me not knowing what to do with the avrdude.conf and platform.txt files that are there.

    If anyone knows how to get this working on 1.0.5, I’d appreciate some pointers!

    • I’d take a look at boards.txt. It has changed since that older version. Here is a place to start. I didn’t use Arduino back the the pre-1.5.x days, so I don’t really know how it worked. The documentation must still be around. You might also use the boards.txt from the Leonardo in version 1.0.5 and change the clock speed to 8MHz and the VID/PID. BE VERY CAREFUL. If you use the wrong clock speed of if there is another important setting that I’m overlooking it might be a pain to get the Qduino Mini running again.

      • Couldn’t get it working, alas. In the end, I just desoldered it, tossed it in the drawer and switched to one of the Pro Mini’s (5V/16Mhz) I had sitting around. Had to switch to AA batteries (sadness) for now (and rework and re-print the case to hold them), but it worked straight-away. 8Mz was probably too slow for Mozzi anyway.

    • The Arduino really just needs an entry in the boards.txt file for the Qduino (at least in the 1.0.x version of the IDE). This uses the same IC as the Leonardo and the Pro Micro. I’d grab the configurations settings from one of those and add an entry for the Qduino. Make sure the speed is correct and you will probably want to update the VID/PID. If you are still having problems feel free to email and they should be able to help you out.

  • Hey there. I just got my qduino - and I followed (best as possible) the instructions on the quick start. All seems well but when I try to upload I get: Cannot run program “REMOVE/bin/avrdude”: error=2, No such file or directory at java.lang.ProcessBuilder.start( at java.lang.Runtime.exec( at java.lang.Runtime.exec( at at cc.arduino.packages.Uploader.executeUploadCommand( at cc.arduino.packages.uploaders.SerialUploader.uploadUsingPreferences( at cc.arduino.UploaderUtils.upload( at at at at$ at Caused by: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>( at java.lang.ProcessImpl.start( at java.lang.ProcessBuilder.start( … 11 more

    Anyone see something similar?


    • Which version of the Arduino IDE are you running? They broke the board manager starting in version 1.6.6 through the last hourly build I’ve tried. Uninstalling, and reinstalling the board support files along with some IDE restarts can clear this up, but I prefer to run 1.6.5-r5 because it just works. Make sure you have the latest board support files from our Arduino Boards repository. Here is the URL you need to put in the IDE.

      • HI Brent I got it working just fine with the support files URL you provided and IDE 1.6.4. Thanks for the pointers. Any idea why it doesn’t work with the new version of the IDE? Thx. Joe

      • Here is the URL

        HI Brent. Yes, using the URL you specified for all the sparkfun boards - uninstalled the other, and reinstalled, but doesn’t work.. yes I’m using 1.6.6. I’ll try to drop back to 1.6.5. Thx.

  • I have been referencing the schematic that is linked above for my Qduino and it is wrong, WRT the I2c pins. The above link ¾ as SDA/CLK, which I tried and was unable to get I2C communication. Another commenter provided this link:

    Which has the pins as 2/3 as SDA/CLK, which I tried and it worked. Anyhow, I can’t seem to find a “sanctioned” link to an accurate schematic. Not from SFE or the Qduino Hackster site. Can someone help me with this?

    • The schematic above is correct. It lists the 3rd and 4th pins as the I2C pins which are D2 and D3. Also feel free to check out the Graphical Datasheet which has all the pins labeled. If you have any other questions feel free to email

      • If you look at the PCB the pins labeled D2 & D3 on the top are labeled SDA & SCL on the bottom.

  • Hi again, I have yet another question. Which pins serves as interrupt pins? I’ve seen that 32u4-based boards have pins 0,1,2,3,7 as interrupt pins ( ) but is the pin numbers on the Qduino board equivalent to the 32u4 pin numbers??

    • Hello,

      You are correct - the pin numbers on the Qduino Mini are the same as the Arduino Leonardo. The available interrupts for use are on pins 0, 1, 2, and 3, because pin number 7 is used for the interrupt on the battery fuel gauge.


  • I’m getting familiar with the Qduino and now when the setup and basic examples works well I would like to wire an OLED display over SPI. Is there any restrictions on which pins I can use for SPI?

    • The recommended pins to use for SPI are on D14, 15, and 16 which are MISO, MOSI, and SCK. They are located on the upper left hand side of the board.

  • Is it safe for me to store data in the EEPROM, or is some of it being used by the Qduino software (for fuel gauge or something)?

    • The current version of the library and examples don’t use the EEPROM. I’m unaware of any plans to do so either. You should be alright using it.

  • An unofficial (user created) tour of the Qduino’s pins is now available…

    … and notes on what is in the library…

    • useful guides, some comments:

      for rainbow(), it maps 1-5 to 500-3000, and due to how map works, <1 and >5 will map <500 and >3000 in increments of 625. there is no bounds checking and its passed to delayMicroseconds() directly. since it’s unsigned int, you can’t have fractions, and <0 will wrap around and produce large numbers. sending 0 would give -125, and I’m not really sure what delayMicroseconds would do with that. maybe wrap backwards to the extend of an unsigned long?

      I’m somewhat surprised setRGB is using String instead of constant ENUM. that’s a lot of memory overhead for effectively no gain.

      • Thanks. I’ve switched from using strings to using an enumeration. I’ve also bound the delay between 1 & 5. No error, if less than 1 use 1, if greater than 5 use 5.

  • Trying to get to grips with this promising board. I don’t have Eagle on my machine. (I use KiCad). A high res .pdf of the schematic would be very, very welcome… and perhaps help all of the Kickstarter supporters make progress. My contact details at the end of the page I’ve started about Qduino…

    • I’ve added a copy of the schematic in PDF format to the GitHub repo. I encourage you to download the free version of Eagle Cad from here.

      • Quin has provided sample code that shows how to query the battery voltage and display it on the USER LED. The drivers and example code work easiest using one of the last few versions of the Arduino IDE. You can manually download the files from GitHub and install them too, but I won’t go into that now since I believe you updated your development environment.
      • If powering the board from a single cell LiPo or USB don’t work for you, you could alternatively power the board with 5V±5% on the Vbus and GND pins, or use a sane LiPo voltage like 4V on the L+ pin next to the Vbus pin. Don’t expect the fuel gauge to work with this 4V method and don’t have a battery connected.
      • If the green part of the STAT LED is bright and solid then the battery is charging, otherwise there isn’t a charging battery.
      • The best documentation can be found in the quickstart guide
      • To file an issue on GitHub use the issues ‘tab’. Please note this link is for the Kickstarter version.
      • The version number is located on the bottom of the board under the USB connector
      • For some reason your Teensy driver isn’t playing well with the Qduino Mini. In the device manager update the Qduino Mini drivers to the Qduino Mini drivers talked about in the quickstart guide
      • The 3.3V regulator on the board is rated to 600mA as the description above states. As you mentioned the onboard hardware will use some of this current. The processor has per pin limits and then per port limits, so the answer to how much power the board can supply depends on the power source and how you have your loads wired up. We recommend you stick to USB and/or a single cell LiPo supply in general. This small board isn’t designed for high power.
      • The boards ship with code to cycle through the RGB LEDs to indicate that the board is good. Checkout one of Quin’s example sketches to see how he controls the LEDs.

      I hope this addresses your main uncertainties. Have fun using your new board!

      • Many thanks!!! LOTS of Good Stuff in the above… I will make incorporation of the same into my page a priority… note that the page already says how good the Sparkfun customer support is! (^_^)

  • Does this support multi-cell charging?

Customer Reviews

4.7 out of 5

Based on 3 ratings:

Currently viewing all customer reviews.

1 of 1 found this helpful:

An Arduino whose time has come

I wish I had this when I built my last battery powered Arduino project. The onboard battery charger/regulators are something that should be included with every Arduino (in my humble estimation). The battery level indicator is also critical - on my last project I had no way to show the batt level. Kudos. The only thing I would like to see, eventually, is a larger/faster Atmel processor. I made a quick video about this on my YouTube channel.

1 of 1 found this helpful:

"almost" perfect

I have one and am trying to base a project around it, because the integrated battery charger is great – I can plug it in to charge a battery without worrying about swapping batteries.

However, the problem I’m running into relate to the pins they chose to use for the user controlled LED – I want to do audio using something like Mozzi, which can do high quality audio using PCM output on two pins on the same timer. By default, Mozzi uses 9 and 10, but 10, 11 and 12 are used by the LED. Most of the pairs of the timer pins that could be used for this seem to need one of these pins. Frustrating.

I’d be happy to do away with the LED to have more flexibility in how I use those pins!

1 of 2 found this helpful:

Awesome Product!

One review is worried that this board is missing pins 10, 11, 13. They’re actually available (and disguised) on the board as the “MISO MOSI & SCK / D14, 15, 16” pins. These ARE pins 10, 11, 13 according to the designer. So this board is a complete Arduino board with the added bonus of an extra LED for status reports.

Support Tips

QDuino-specific driver

If you are looking for a Qduino-specific driver, it can be found here:

It is the /Software/qduinomini.tar file.

Recovering a Bricked QDuino

If you have a Qduino that is not being recognized by your computer and you are not able to upload new Arduino code, you might be able to recover the board using the double reset method. Try looking here for more information => [–fio-v3-hookup-guide#troubleshooting-and-faq ]. You can also try to look at the troubleshooting comment under bboyho for the other ATmega32U4 development boards [–fio-v3-hookup-guide/discuss#comment-56aa5cabce395f9f2d8b456d ]. There is a list of detailed instructions on reviving each of the other SparkFun ATmega32U4 development boards under the tech tips. Just make sure to select the “Qduino Mini” board when recovering the board.

We had a case where a customer’s Qduino was not able to be recognized on their Windows computer. By following the double reset method and uploading Arduino code when the board was in bootloader mode, they were able to recover the Qduino.