Skip to the content
2 layers40.1 × 50 mmDuckjaws, the printed circuit board in 3D

A set of basic SAOs with glowing rubber duckies

Size
40.1 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
26
Nets
30
Pads
81
Tracks, vias
211, 49
Pours
3
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
14 Oct 2024
Updated
13 Jan 2025

Overview

Duckjaws is an open-source printed circuit board by astuder, from the astuder/duckglow repository on GitHub. It is a 2-layer board of 40.1 × 50 mm with 26 parts on 30 nets, routed with 211 tracks and 49 vias.

It is built around the ME2188A33M3G. Its parts include 10 resistors, 5 diodes, 4 capacitors, 2 ICs and 1 connector. It belongs with the RISC-V boards of this library.

Main components

1

README

README.md

duckGLOW SAO

duckGLOW is an SAO with a glowing rubber duck, lit up by an RGB or UV LED, controllable over I2C, or like an addressable LED following the WS2812 'standard'.

See hackaday.io for more information.

See examples folder for sample code to run on the SuperCon 8 SAO badge, or an Arduino.

I have a few assembled units of the duckJAWS variant for sale on Tindie.

I2C Interface

The LED of the duckGLOW SAO can be controlled over I2C.

The SAO has four channels: red, green and blue for the duck LED, and on the duckJAWS variant, red background lightning.

The SAO implements smooth fading configurable per channel. The LED brightness fades between max and min value, at the chosen speed. If speed is 0, the LED will steadily glow at the configured maximum. The phase parameter sets the offset in the fading waveform.

The mode register can be used to select the interface for LED control (auto-detect, I2C or WS2812), and to check what type of LED was detected (RGB or UV).

The current settings can be stored as power-on preset by writing decimal 42 to the save register. The power-on presets can be factory reset by writing 24 to the save register.

I2C Address

The default I2C address of the duckGLOW SAO is 0x6C. The address can be changed by closing solder jumpers on the back of the circuit board.

SJ1SJ2Address
OO0x6C
CO0x6D
OC0x6E
CC0x6F

I2C Registers

Register are accessed by first writing the 8-bit register address, and then reading or writing register data. The register address will auto-increment and multiple registers can be read or written within a single I2C transaction.

For example to read the max RGB colors with an Arduino:

text
Wire.beginTransmission(0x6C);
Wire.write((uint8_t) 0xEC);
Wire.endTransmission(false);
Wire.requestFrom(0x6C, 3);
while (Wire.available()) {
  char c = Wire.read();
  Serial.println(c, HEX);
}

And to set the red LED to maximum brightness:

text
Wire.beginTransmission(0x6C);
Wire.write((uint8_t) 0xEC); // red led max brightness
Wire.write(0xff);
Wire.endTransmission();
Wire.beginTransmission(0x6C);
Wire.write((uint8_t) 0xF4); // animation speed
Wire.write(0x0);
Wire.endTransmission();
addressnamedescription
0x00docssome info about the add-on
0xEC-EFmaxmax brightness for red, green, blue and background channels
0xF0-F3minmin brightness for red, green, blue and background channels
0xF4-F7speedfading speed per channel, 0 = set LED to max value (no fading)
0xF8-FBphaseoffset within fading animation per channel
0xFCmodebits 0..1: LED ctrl 0=auto, 1=I2C, 2=WS2812
bit 4: LED type 0=RGB, 1=UV
0xFDsavewrite 42 to save current register values as new default
write 24 for factory reset
0xFEdebugerror codes for debugging firmware

Parts

26
QtyValueFootprintReferences
4680RResistor_SMD:R_0603_1608MetricR4, R5, R6, R7
4LEDLED_SMD:LED_Kingbright_APA1606_1.6x0.6mm_HorizontalD2, D3, D4, D5
3100RResistor_SMD:R_0603_1608MetricR1, R2, R3
322uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3
210KResistor_SMD:R_0603_1608MetricR10, R11
2ADDRJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1, JP2
1100nFCapacitor_SMD:C_0603_1608MetricC4
11KResistor_SMD:R_0603_1608MetricR9
122uHInductor_SMD:L_Changjiang_FNR3012SL1
1CH32V003FxUxPackage_DFN_QFN:QFN-20-1EP_3x3mm_P0.4mm_EP1.65x1.65mmU1
1LED_RAGBfootprints:LED_D5.0mm-4_RGB_single-sideD1
1ME2188A33M3GPackage_TO_SOT_SMD:SOT-23U2
1SOAConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical_SMDJ1
1TestPointTestPoint:TestPoint_Pad_D1.0mmTP1

More from astuder/duckglow

1
  • 2 layers40 × 20 mmDuckbath, the printed circuit board in 3D

    Duckbath

    astuder/duckglow

    A set of basic SAOs with glowing rubber duckies

    19 parts3

Similar boards

  • 2 layers57.3 × 19 mm11ua, the printed circuit board in 3D

    11ua

    rene-dev/stmbl

    AC Servo Driver for STM32F4

    26 parts990GPL-3.0
  • 2 layers98 × 59.5 mmMCP23017 PCB, the printed circuit board in 3D

    MCP23017 PCB

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    26 parts915
  • 2 layers142.9 × 98.5 mmCantor MX, the printed circuit board in 3D

    Cantor MX

    diepala/cantor

    Cantor keyboard, a 42 key diodeless split keyboard.

    26 parts756GPL-3.0
  • 2 layers103.8 × 50 mmGalagino pcb set, the printed circuit board in 3D

    Galagino pcb set

    harbaum/galagino

    A Galaga, Pac-Man and Donkey Kong arcade emulator for the ESP32

    26 parts558
  • 2 layers20.3 × 34.8 mmL0 ESP32, the printed circuit board in 3D

    L0 ESP32

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    26 parts546MIT
  • 2 layers40.6 × 50.8 mmWALTsm, the printed circuit board in 3D

    WALTsm

    google/walt

    A device for measuring latency of physical sensors and outputs on phones and computers

    26 parts474Apache-2.0
  • 2 layers158.5 × 75 mmDoj v2, the printed circuit board in 3D

    Doj v2

    kelu124/echomods

    Open source ultrasound processing modules and building blocks

    26 parts463

Questions

How big is the Duckjaws PCB?

It measures 40.1 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Duckjaws use?

26 parts, built around the ME2188A33M3G. 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 Duckjaws KiCad files?

From the astuder/duckglow repository on GitHub, at the commit this page was made from: the board is duckjaws/duckjaws.kicad_pcb and its schematic duckbath/duckbath.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Duckjaws design in my own project?

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