SAM4S development board

SAM4S development board

There is a ton of development boards on the internet and I'd like to share my own. This time it's for Cortex-M4 from Atmel, the ATSAM4S in 0.5mm pitch 64-pin LQFP. The board is also good for any pin-compatible processor, such as SAM3S. I use ATSAM4S8B-AU, a 120MHz processor with DSP functions, 512 kB Flash and 128 kB RAM.

The board is not the smallest or cheapest one but it has been proved to work (it's revision 3.0 after all) and has all the necessary stuff without useless BS. It is programmed via JTAG or (micro)USB.
The pitch between the two pin headers is 1.6" and fits many larger breadboards.

The DevBoard



  • All I/O pins routed to pin headers.
  • 12MHz crystal oscillator.
  • Fully ESD-protected USB.
  • Power supply either externally or from USB. Routed via 0.5A Schottky to 0.5A 3.3V LDO. TVS protection on the 3.3V line.
  • Precision 2.048V voltage reference can be connected via jumper, when disconnected, external voltage reference can be applied.
  • Reset button and erase jumper.
  • Full 20-pin JTAG header for connecting programmers like SAM-ICE.


Schematic and board

You can download Eagle schematic and board from my Google Drive. The board can be ordered from OSH Park for something under 20 USD per three boards.

Complete schematic of the development board


MightyWatt resource page

This page contains the most up-to-date resources for MightyWatt. 


New version R3 available on Tindie with its own resource page here! If you have version 2 to 2.5, continue using this page for resources.

Click here to view Google Drive folder with all the resources.


Resources also available on GitHub.

Please, contact me if you find a bug or have a software request.

Latest hardware revision: 2.5

Latest sketch (firmware) version: 2.5.9 (2.5.9 calibration)

Latest Windows control program version:

Warning: You will need FW 2.5.7 or higher for Windows client and higher.


Detailed guide: All you need to know for calibrating and running MightyWatt.
Case assembly instructions: If you have the original acrylic layered case for MightyWatt + Arduino Uno or Arduino Zero (M0/M0 Pro), these are the instructions on how to assemble it.
Communication protocol description: If you wish to use your own PC-side control program with the original sketch, this guide has information about the communication protocol which is used by MightyWatt.
Booster pack guide: A guide for the official Booster pack accessory. Increases the maximum power dissipation with a power resistor.

Arduino sketches 

Main sketch (firmware): This is the program that runs in Arduino. As of version 2.5.7, it is compatible with Arduino Zero (M0/M0 Pro), Uno and Due boards. Please note that on Due boards, it is necessary to solder its AREF (BR1) jumper to EXT (external).
Calibration sketch: Use this for calibration of MightyWatt.

Schematic and board 

Eagle: Schematic and board plus a PNG image of the schematic.

Bill of Materials

PDF file: List of all the components you need to make MightyWatt.

Windows control program

Complete C# project: A PC-side program that controls MightyWatt. Program has manual control, advanced measurement programs and data logging. The executable is located in C#/bin/Release/MightyWatt.exe
Changelog: A file containing description of changes to the Windows program.


Excel macro: A macro-enabled workbook that can import data from MightyWatt Log File and automatically update it, thus showing charts in real-time.

Calibration aid

Excel spreadsheet: Calculates the calibration values.

Acrylic layered case

SVG drawing: Contains drawings of the layers. Numbers in parentheses indicate how many layers are needed for one case.


How to update to firmware version 2.3.1 (and higher) and Windows program (and higher):

Windows program version (and higher) is only compatible with firmware version 2.3.1 (and higher). It is, however, possible to upgrade any 2.0 or higher board to this version. You will have to modify the calibration values though. Download the new calibration aid and copy the source (measured, ADC and DAC) values from your old calibration aid to the new calibration aid (or make a new calibration). You will get a set of new values which you will put into the new sketch. Also, don't forget to comment "#define ZERO" and "#define DUE" and uncomment "#define UNO" line in the sketch. I recommend reading the Detailed guide.