The Macro Micro is basically a high current Arduino Micro, while being smaller than an Arduino Uno.
A multipurpose microcontroller that is easy to program with high voltage and current inputs and outputs, and has hundreds of uses in robotics and home projects, including stepper motor driver, LED strip light controller, small speaker driver, servo actuator, fan speed controller, electric car window conversions, brew kit controller.
Macro Micro Arduino based Microcontroller
– 12 digital outs capable of sinking 2A each via onboard mosfet switches
– 14 digital inputs (of these 6 are A0-A6)
– 6 Analog inputs (A0-A6)
– 6 Analog outputs
– 6 Built-in Low pass filters on PWM outputs
And has a large voltage input range from 5-30V @ 3A continuous input.
Our Marco Micro uses a ATmega32u4 processor operating at 16 MHz, which allows for 20 digital input/output pins, it has a micro USB connection,
an ICSP header, and a simple form factor which enables it to be effortlessly placed onto a breadboard for quick prototyping.
Input Voltage 7-30V @ 3A max (recommended)
Input Voltage 6-35V (limits)
Output Voltage 12V & 5V (when input voltage 14-30V)
Output Voltage 5V (when input voltage 7-12V)
Digital Output Pins 20
PWM Channels 7
Analog Output Channels 6 (via LPF)
Analog Input Channels 6
2A Mosfet Switch Pins (D2-D13)
Digital Output Pin Current 40 mA (D0-D1,A0-A5)
Digital Input Pins 14 (see below for more information)
Flash Memory 32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM 1 KB (ATmega32u4)
Clock Speed 16 MHz
38mm wide x 77mm long x 14mm high (1.5″ x 3″ x 0.55″)
Firmware / Software:
The MAcro Micro is an Arduino compatible board, and as such has been pre-loaded with firmware that allows you to write programs in the Arduino IDE (see: http://arduino.cc for software download)
To program, simply connect your MAcro Micro to a computer with a micro USB cable, and program using the Arduino software with the board type set to ‘Leonardo’
Note: If you select the board type to be “Micro’ rather than ‘Leonardo’ you might have have difficulties on some PC’s or Laptops. If you have accidentally set your board type to “Micro’ rather than ‘Leonardo’ and are having difficulty loading your program, you will need to re-flash your board with the Leonardo firmware (Please see instructions on the Arduino.cc website)
Example code for the D3 light sequence can be found here: Drone 3 basic light sequence (unzip and open in Arduino IDE)
Macro Micro Power
The Macro Micro can be powered via the micro USB connection or with an external power supply. The power source for the micro controller is selected automatically.
External power can be supplied by either a DC power supply, battery or similar. This should be connected to the appropriate voltage input pins (14-30V, 12V, 5V) and the GND to any of the GND pins.
If you are using an external supply and the voltage is less than 7V, the board may be unstable as the 5V rail will be lower than 5V due to the onboard regulator requiring a 2V threshold.
14-30V. This is for an external power input, with voltage range from 14 to 30V – at a maximum of 3A continuous. This input gets stepped down to a regulated 12V via an onboard regulator.
14V is the lowest voltage you can put on this input pin
12V. 12V pins are both an input and output and all 12V pins are on the same bus.
If you are supplying the Macro Micro with external power of 14-30V, then the 12V rail/pins will supply a regulated 12V @ 3A.
When supplying external power to the 12V pin, the onboard 5V voltage regulator will step this 12V down to 5V for the microcontroller and other board functions (external supply can be between 7-12V).
5V. 5V pins are an input and output, and on the same bus.
This is a regulated voltage, used to power the microcontroller and other components on the board. This can come either from the 14-30V, 12V input (7-12V) or be supplied by the USB input or another regulated 5V supply.
GND All ground pins are connected together.
Input and Output:
Just like the Arduino Micro, the 20 digital/analog i/o pins on the Macro Micro can be accessed using standard Arduino pinMode(), digitalWrite(), and digitalRead() functions.
macro micro digital and analog inputs and outputs
Digital Outputs (High Current):
The Macro Micro features 12 2A mosfets which can switch a 2A load to ground by digital outputs on pins D2 through D13.
2A on board Mosfets giving this Arduino powered Macro Micro serious power
These mosfets are current sinks and will sink to ground any voltage up to 30V @ 2A.
6 of the these outputs are PWM capable. This 8-bit PWM output can be accessed using the standard analogWrite() function. These are pins D5,6,9,10,11,13).
Of the mosfet enabled outputs, 6 of these have a separate input pin to enable digital in – bypassing the mosfets. These can be accessed via the through holes on the pcb.
Digital Inputs/Outputs (Low Current):
The non-mosfet enabled digital inputs/outpus operate at 5 volts. Each pin can provide or receive a maximum of 40 mA. These are D0,D1,A0-A5.
TWI: 2 (SDA) and 3 (SCL). Support TWI communication using the Wire library.
I2C and interrupt bypass for pins D2 and D3
External Interrupts: 0(RX), 1(TX), 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.
PWM: 3, 5, 6, 9, 10, 11 and 13. Provide 8-bit PWM output with the analogWrite() function.
SPI: on the ICSP header. These pins support SPI communication using the SPI library. Note that the SPI pins are not connected to any of the digital I/O pins as they are on the Arduino Uno, they are only available on the ICSP connector and on the nearby pins labelled MISO, MOSI and SCK.
RX_LED/SS This is an additional pin with respect to the Leonardo. It is connected to the RX_LED that indicates the activity of transmission during USB communication, but is can also used as slave select pin (SS) in SPI communication.
LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it’s off.
Jumper pads for D5,6,9,10,11,13:
On the back of the PCB you will see 6 groups of 4 solder pads. These are used to bring the low pass filter in or out of the circuit on pins D5,6,9,10,11,13.
By bridging the outer pins in each group (1,2 and 3,4) you will bring in the low pass filter.
By bridging the inner pins in each group (2,3) you will bypass the low pass filter.
Please see low pass filter section and diagram below for more information.
Analog Inputs: A0-A5, A6 – A11 (on digital pins 4, 6, 8, 9, 10, and 12).
The Micro has a total of 12 analog inputs, pins from A0 to A5 are labelled directly on the pins and the other ones that you can access in code using the constants from A6 trough A11 are shared respectively on digital pins 4, 6, 8, 9, 10, and 12. All of which can also be used as digital I/O. Each analog input provide 10 bits of resolution (i.e. 1024 different values). By default the analog inputs measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function.
There are a couple of other pins on the board:
AREF. Reference voltage for the analog inputs. Used with analogReference().
Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board.
On-board Low pass filters (Analog Output via PWM):
Analog output via on board low pass filters using PWM – Arduino
We have incorporated Low pass filters in parallel on the 6 digital PWM channels to allow analog output.
These filters are normally off and can be brought in or out of the circuit via solder blobs or 0R resitors.
With this in circuit you can use this digital channel as an analog output by using the PWM control in arduino.
Please see below for the PCB schematic
Macro Micro Schematic