Skip to the content
PCBKitNew board
2 layers12 × 30 mmElectric greetings, the printed circuit board in 3D

Cute arduino compatible development board for introducing people to Electric UI

Size
12 × 30 mm
Copper layers
2
Thickness
2 mm
Parts
19
Nets
35
Pads
79
Tracks, vias
146, 14
Pours
6
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
29 Jul 2018
Updated
3 Jun 2020

Overview

Electric greetings is an open-source printed circuit board by electricui, from the electricui/electricui-helloboard repository on GitHub. It is a 2-layer board of 12 × 30 mm with 19 parts on 35 nets, routed with 146 tracks and 14 vias.

It is built around the ATSAMD21E18A-AF, AP2112K-3.3 and APA102-2020. Its parts include 4 capacitors, 3 ICs, 2 resistors, 2 connectors and 1 diode. It belongs with the microcontroller boards boards and the SAM D and SAM boards of this library.

Main components

3

README

README.md

Electric UI HelloBoard

This is a tiny USB based evaluation board which makes development against a common platform easier, and helps introduce new users to Electric UI who may not have hardware on hand.

Background

The board is based on the Atmel SAMD21E18 microcontroller, a neat little ARM Cortex M0 core in a compact 32 pin package.

electric-greetings-assembled

The main goal of the board is to provide a quick and painless development experience to people who might not have played with embedded hardware before.

By including a few interactive components, and leveraging existing supported designs and software, the process should be as user-friendly as possible with no additional hardware/software modifications.

Specifications

The board is very closely related to the Adafruit Trinket M0 design, but uses an insertable male USB footprint rather than rely on a USB micro cable. The KiCAD design files, gerbers and PDF's are in /hardware.

It includes an ambient light sensor, click button, two capacitive touch pads, and a APA102-2020 RGB LED for the user to interact with, discarding the USB micro connector and some power supply related components on the Trinket.

The micro-controller is suitably capable for it's footprint:

  • 256kB Flash memory (program storage)
  • 32kB RAM
  • 32-bit ARM M0 core running at 48MHz
  • Native USB
  • Supported by the Arduino IDE, or CircuitPython

The small 'thumb-drive' form factor is intended to make the sticks easy to carry and give away.

Firmware Examples

The /firmware directory has a series of Arduino sketches which provide base examples for interacting with the hardware.

Most basic and intermediate example sketches in the electricui-embedded corpus should be directly compatible without modification.

Flashing Firmware

The Adafruit M0 bootloader is used on this board, which supports the Arduino IDE through BOSSA, and will also enumerate as a USB mass storage device. Simply dropping any compatible UF2 file on the 'drive' will update the firmware.

Arduino IDE

The bootloader supports Arduino IDE flashing out of the box.

Install the SAMD and Adafruit SAMD hardware definitions from the Boards Manager, as described in this Adafruit guide.

Select Trinket M0 and the USB device in the Tools dropdown, then just flash the board as normal.

Note about Serial.print()

The Adafruit documentation is incorrect regarding usage of Serial vs SerialUSB. This hardware does not require SerialUSB to be used in sketches, as indicated in the Adapting Sketches to M0. That guide is relevant to other Atmel SAMD boards, but the Trinket just uses Serial by default.

UF2

Plug the USB stick into a compatible computer (Windows, macOS, Linux are all fine), and drop a UF2 file into the root of the TRINKETBOOT disk.

SWD Probe

A SWD programmer is required to burn the boot-loader on new hardware for the first time, but can also be used to burn firmware as part of normal development. Doing this will save some memory normally used by the boot-loader.

While any other Atmel compatible SWD programmer (OpenOCD compatible, Atmel branded, or otherwise) can be used, I used a J-Link on Linux (Solus) to flash the boards for the first time. Programming wires are either soldered on or held in place (the two exposed round pads just above the RGB led), and the JLinkExe tool is used to burn the boot-loader binary as described in this thread (and below):

  1. Build the bootloader by cloning the adafruit uf2-samdx1 repo, then running make BOARD=trinket_m0 on a *nix system.
  2. Connect a compatible JLink programmer.
  3. From the /build/trinket_m0 folder, execute JLinkExe which I had installed in /opt/segger/jlink.
  4. si 1 to set the programming mode to SWD,
  5. speed 4000 to set programming speed to 4kHz,
  6. device ATSAMD21E18 for this target,
  7. loadbin bootloader-trinket_m0-v2.0.0-adafruit.9-2-g1e0d553.bin, 0x00000000 to burn the freshly built Trinket M0 bootloader to the base address 0x00000000.
  8. r to reset the device,
  9. g to run the program (though I'd advise just power cycling the target at this point),

Manufacture & Assembly

Makerfabs produced the boards, but any basic tier fab should work fine. 2.0mm thick FR4 is required to fit in normal sockets, and I'd recommend an ENIG finish as it looks a lot nicer.

The rest of the parts can be ordered from DigiKey or Adafruit (if you pull parts off existing Trinket M0 boards).

Assembly should be done with paste and hot air, or a reflow oven if possible. As this board has some fine pitch parts and 0402 components, its not the easiest board for a beginner to assemble.

I was able to assemble boards by hand without magnification, so people familiar with 0402 and 0.5mm pitch QFN parts shouldn't have too many issues.

Parts

19
QtyValueFootprintReferences
210u_X7R_2012MApplidyne_Capacitor:CAPC2012X110NC3, C4
21u_X5R_1005MApplidyne_Capacitor:CAPC1005X60NC1, C2
2PAD_SOLDER_2mmApplidyne_Connector:PAD_SOLDER_2mmP1, P2
2PROBE_PADApplidyne_Test:TP100TEST1, TEST2
110K0_1005MApplidyne_Resistor:RESC1005X40NR2
11K5_1005MApplidyne_Resistor:RESC1005X40NR1
1ALS-PT19-315CApplidyne_Special:TEMT7000XQ1
1AP2112K-3.3Applidyne_SOT:SOT95P280X145-5L30LU2
1APA102-2020Applidyne_LED:AP102_200X200X90LU3
1ATSAMD21E18AApplidyne_QFN:QFN33P50_500X500X100L40X24T345NU1
1B3U-1000P_SPST-NO_SMDApplidyne_Switch:B3U-1000PSW1
1LED_RED_1608MApplidyne_LED:LEDC1608X80L40LD1
1LOGOApplidyne_Logo:EUI_LOGO_1000X940_MASKLOGO1
1SOLDER-LINK-2-TINYApplidyne_Link:SJ1005-2NSL1
1USB_A_MALE_PCBApplidyne_USB:USB_A_PLUG_PCBJ?1

Questions

How big is the Electric greetings PCB?

It measures 12 × 30 mm and has 2 copper layers, 2 mm thick.

What parts does the Electric greetings use?

19 parts, built around the ATSAMD21E18A-AF, AP2112K-3.3 and APA102-2020. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Electric greetings KiCad files?

From the electricui/electricui-helloboard repository on GitHub, at the commit this page was made from: the board is hardware/electric-greetings/electric-greetings.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Electric greetings design in my own project?

Its repository states no licence, so its author keeps all rights: ask electricui before reusing the design.

Similar boards

  • 4 layers100 × 100 mmPi TX 35W PA, the printed circuit board in 3D

    Pi TX 35W PA

    M0LTE/pi-transceiver

    An attempt to build a complete ham radio transceiver around a Raspberry Pi

    161 parts15
  • 4 layers44.5 × 34.9 mmEclair, the printed circuit board in 3D

    Eclair

    upbeatcarri/eclair

    Pocket device for taking quick notes, acting as a USB keyboard for PC sync etc., with custom apps samd21, tinygo

    56 parts25
  • 2 layers36.6 × 36.4 mmShirtty, the printed circuit board in 3D

    Shirtty

    sarfata/shirtty-addon

    Badge addon with infrared receive/transmit

    26 parts7
  • 2 layers54.6 × 68 mmRng pcb, the printed circuit board in 3D

    Rng pcb

    mitsake/rng-pcb

    A hardware random number generator that uses avalanche noise. Based on the Trinket M0.

    46 parts5CC-BY-SA-4.0
  • 2 layers33.5 × 46 mmBbqueue, the printed circuit board in 3D

    Bbqueue

    minor-industries/hardware

    Minor Industries' PCBs

    31 parts