Two slide potentiometers, connected to micro:bit pins P1 and P2, which can be read as analog inputs.
A terminal block for connecting "NeoPixels" (WS-2812 LEDs), with a level shifter to convert from 3.3V logic (on pin P16) to 5V logic.
A terminal block for connecting "DotStars" (APA-102 LEDs), with a level shifter to convert from 3.3V logic (on pins P13 and P15) to 5V logic.
A Qwiic connector for attaching I2C peripherals.
A 3.5mm audio jack for headphones. (Connected to pin P0).
A barrel connector for an external 5-12V power supply, which is mandatory for powering the NeoPixels, and can also optionally backpower the micro:bit safely.
Note that the voltage which comes in on the barrel jack is used directly to power the NeoPixels and DotStars, so you need to choose a voltage which is appropriate for the NeoPixels and/or DotStars you are using. Most NeoPixels are 5V, although there are a few 12V ones. I don't know of any DotStars which are not 5V. You can't have a different voltage for the NeoPixels and the DotStars.
The neo:bit contains a low-dropout 3.3V voltage regulator, which is used for back-powering the micro:bit, and for supplying the 3.3V power on the Qwiic connector. You probably shouldn't draw more than 90 mA on the Qwiic connector's power pin.
The neo:bit also contains a low-dropout 5V voltage regulator, but that is just to supply the 5V signal on the NeoPixel and DotStar data lines.
To read the slide potentiometers, just configure P1 and P2 as analog inputs, and read them. The idea is that you could use these inputs to control your NeoPixel animation, such as the speed, color, or brightness.
J4 has the NeoPixel output, along with +V and GND. You may want to connect a JST-SM pigtail to the J4 screw terminals. This will let you connect strings of 5V NeoPixels, such as ones from Alitove or Wesiri, or my chainable NeoPixel butterflies. (The Wesiri lights come with the necessary pigtail, so you don't need to buy one separately.)
You must have an external power supply (such as this one or this one for 5V, or this one for 12V) connected to the neo:bit's barrel jack in order to power the NeoPixels. If the external power supply is connected, the neo:bit will also supply 3.3V back to the micro:bit, so it is not necessary to power the micro:bit from another source. (However, this is done with a protection diode, so it is OK to have the micro:bit connected to another source at the same time the external supply is connected.) If you only want to use the potentiometers and/or Qwiic but not the NeoPixel output or DotStar output, then you do not need to have an external supply connected, as long as the micro:bit is powered by another source.
Following the NeoPixel best practices, the neo:bit includes a 470 ohm resistor on the NeoPixel data line, and there is a 1000µF capacitor on the +V power line.
Once you have your NeoPixels hooked up, you should be able to access them by instantiating a NeoPixel strip on pin P16 in either MakeCode or Python. The Alitove and Wesiri strings, as well as my NeoPixel butterflies, use RGB order instead of the default GRB order.
Ordering the Board
You can order this board directly from OSH Park without needing to upload anything.
If you want to modify the design, the source is provided in KiCad format.
Bill of Materials
|C1||CAP ALUM 1000UF 20% 25V RADIAL||25PX1000MEFCT810X16||1189-1583-1-ND|
|C2||CAP CER 0.1UF 50V X7R RADIAL||K104K10X7RF5UH5||BC2665CT-ND|
|C3-C6||CAP CER 1UF 50V Y5V RADIAL||K105Z20Y5VF5TH5||BC1168CT-ND|
|C7||CAP ALUM 47UF 20% 16V RADIAL||ECE-A1CKS470||P969-ND|
|C8, C9||CAP ALUM 220UF 20% 10V RADIAL||UVK1A221MDD1TD||493-7455-1-ND|
|C10||CAP CER 10000PF 50V X7R RADIAL||K103K15X7RF5TL2||BC1078CT-ND|
|D1||DIODE SCHOTTKY 20V 1A DO41||1N5817||1N5817FSCT-ND|
|J1||CONN JACK STEREO 3.5MM R/A||SJ1-3533NG||CP1-3533NG-ND|
|J2||CONN PWR JACK 2X5.5MM SOLDER||PJ-063AH||CP-063AH-ND|
|J3||Qwiic JST Connector - SMD 4-pin||PRT-14417||(SparkFun)|
|J4||TERM BLOCK 4POS SIDE ENT 3.5MM||1776275-4||A98038-ND|
|J5||micro:bit through-hole right-angle edge connector||3342||(Adafruit)|
|J6||TERM BLOCK 3POS SIDE ENT 3.5MM||1776275-3||A98037-ND|
|R1||RES 100 OHM 1/4W 5% AXIAL||CF14JT100R||CF14JT100RCT-ND|
|R2||RES 470 OHM 1/4W 5% AXIAL||CF14JT470R||CF14JT470RCT-ND|
|R3||RES 22 OHM 1/4W 5% AXIAL||CF14JT22R0||CF14JT22R0CT-ND|
|RV1, RV2||SLIDE POT 10K OHM 0.25W TOP 45MM||PTA4553-2015CPB103||PTA4553-2015CPB103-ND|
|U1||IC BUF NON-INVERT 5.5V 14DIP||SN74AHCT125N||296-4655-5-ND|
|U2||IC REG LINEAR 3.3V 250MA TO92-3||MCP1702-3302E/TO||MCP1702-3302E/TO-ND|
|U3||IC REG LINEAR 5V 250MA TO92-3||MCP1702-5002E/TO||MCP1702-5002E/TO-ND|
|(qty 2)||KNOB SMOOTH 0.157 X 0.039" NYLON||1300-E||[1722-1329-ND]|
Plus you'll need a micro:bit, a power supply (such as this one), and some NeoPixels.
Most of the assembly should be straightforward, but there are a few connectors worthy of more discussion.
The four electrical pins are not enough to hold this connector in place. There are two mounting pins which are also meant to be soldered, but I found hand-soldering them was nearly impossible. So, I used a drop of epoxy to hold the Qwiic connector in place.
I've found that stranded wires don't stay in the terminal blocks very well, so I recommend using solid wire. Or, you may wish to omit the terminal blocks entirely and solder wires directly to the board.
The micro:bit connector has 80 pins, but only 40 of them need to be soldered. The pins that need to be soldered are the two rows farthest from the edge. (These pins are slightly taller than the others.) I usually solder just a few of the pins on the row closest to the edge, too, just for mechanical stability.
The files in this repo are licensed under CC-BY-SA 4.0.
Some symbols and footprints in this repo are under different licenses:
- microbit_edge_connector symbol by anthonykirby and 4UCON_10156_90deg footprint (which I have substantially modified) by SukkoPera (MIT License).
- 74AHCT125 symbol is a substantially modified version of the symbol from a library by propane-and-electrons.
- Barrel_Jack_MountingPin symbol is from the official KiCad 5 library, and R_POT_Mountingpin symbol is derived from a symbol in the official library (CC-BY-SA 4.0 with exception).
- The TerminalBlock_4Ucon_* footprints are also from the official KiCad 5 library.