We put a ton of stuff on this HalloWing M4, above you can see a 'guided tour' of whats available!
There's two ways to power your Hallowing. The best way is to plug in a 3.7/4.2V Lipoly battery into the JST 2-PH port. You can then recharge the battery over the Micro USB jack. You can also just run the board directly from Micro USB, it will automatically 'switch over' to USB power when that's plugged in

You can turn off power completely with the on/off switch at the bottom of the board.
If you need access to the power pins, the 'Feather Headers' have 3.3V regulated out, GND on the left. On the right there's the BAT pin (connects directly to lipoly) and two pins below that is the USB pin. You can measure the voltage on the battery by reading analog pin A6 - this is divided by two with resistors so don't forget to x2 once you do the reading. The voltage, after doubling, will range from about 3.5 (empty) to 4.2V (charged)
The main processor is the ATSAMD51G18 running at 120MHz with 3.3V logic/power. It has 512KB of flash and 192KB of RAM. It can run Arduino or CircuitPython.
We also include 8 MB of SPI Flash for storing images, sounds, animations, whatever!
There's a few built in sensors.
On the top there's a light sensor, connected to pin A7 - it's reverse mounted so you can read light levels from the front.
There's also a MSA301 3-axis accelerometer connected to the I2C pins for detection motion, tilt or taps
On the bottom of the board are four pads designed for capacitive touch. They are connected to A2, A3, A4 and A5.
On the right is a SENSE port, this is a JST 3-PH port for connecting an external sensor. From the top to bottom the pads are GND, V+, D2 (in Arduino this is also A8). V+ is either LiPoly or USB power, whchever is plugged in and higher. There's a 1 Kohm+3.6V zener diode connection to protect against voltages higher than 3.3V coming in.
On the left is the EXTERNAL NEOPIXEL port, this is a JST 3-PH port for connecting external NeoPixel strips. From top to bottom, the pads are D3, V+, GND (in Arduino this is also A9).
There is a 4-pin JST I2C connector on the right, that is STEMMA and Grove compatible. The I2C has pullups to 3.3V power and is connected to the MSA301 already.
In CircuitPython, you can use the STEMMA connector with board.SCL
 and board.SDA
, or board.STEMMA_I2C()
.
The I2C connector defaults to 5V. There is a jumper you can cut or solder to change it between 5V and 3V. It also changes the STEMMA 3-pin connector power pin voltage!
There is a speaker connector with a mono 2 Watt class D audio amp connected to A0 - that's the DAC output on the SAMD51,. It is good for many simple sound effects or musical output.
The speaker connector is a Molex PicoBlade.Â
In CircuitPython, to use the speaker, you must enable the speaker with the board.SPEAKER_ENABLE
pin. To do so, include the following two lines in your code:
speaker_enable = digitalio.DigitalInOut(board.SPEAKER_ENABLE) speaker_enable.switch_to_output(value=True)
There are six LEDs. There is the red LED on pin D13 (top to the right of the USB connector), and the CHG LED that will let you know when the battery is charging (top to the left of the USB connector)
Located on the sides and towards the bottom are four side light NeoPixels on D8 (in Arduino) or board.NEOPIXEL
(in CircuitPython). Check out the image at the top of this page to see what order they're numbered!
It's normal for the yellow CHG LED to flicker when no battery is in place, that's the charge circuitry trying to detect whether a battery is there or not. If you are powering only over USB, you can cover it with tape
Page last edited March 08, 2024
Text editor powered by tinymce.