
YM2151 STM32 VGM
AidanHockey5/YM2151_VGM_STM32
A hardware arcade video game music player based on the STM32 platform driving a YM2151

A cheap (in quality) and cheap (in dollars) USB comms adapter: 10 pins of SPI/I2C/UART/GPIO.
Radius is an open-source printed circuit board by tcr, from the tcr/radius repository on GitHub. It is a 2-layer board of 27.9 × 27.6 mm with 12 parts on 20 nets, routed with 270 tracks and 31 vias.
It is built around the STM8S003F3P6, CH340G and LD1117. Its parts include 5 capacitors, 3 ICs, 3 connectors and 1 crystal. It belongs with the interfaces and adapters boards and the STM8 boards of this library.

make
make flash
make testIf OS X reports contention for your device:
sudo kextunload -b com.apple.driver.AppleUSBCardReader
sudo kextunload -b com.apple.iokit.IOUSBMassStorageClass| Designator(s) | Quantity | Description | Part Number |
|---|---|---|---|
| IC1 | 1 | STM8S 8-bit micro (TSSOP-20) | STM8S003F3P6 |
| P2 | 1 | 10-pin right-angled header, .1" Pitch | PPTC101LGBN-RC |
| U1 | 1 | Full speed USB <-> 9-pin Serial (SOP-16) | CH340G |
| U2 | 1 | 3.3V Regulator (SO-8) | LD1117D33CTR |
| Y1 | 1 | 12Mhz Crystal | NX3225SA |
| C1 | 1 | 0.1 uF (0603) | ... |
| C2 | 1 | 10 uF (0603) | ... |
| C3 | 1 | 1 μF polarized (0603) | ... |
| C4, C5 | 2 | 20 pF (0603) | ... |
USB:
Reference manual: http://www.st.com/web/en/resource/technical/document/reference_manual/CD00190271.pdf
CPU reference: http://www.st.com/web/en/resource/technical/document/programming_manual/CD00161709.pdf
Product Datasheet: http://www.st.com/web/en/resource/technical/document/datasheet/DM00024550.pdf
Errata: http://postar.sino-star.com/public/uploads/20120214161049_871.pdf
Datasheet: http://www.seeedstudio.com/wiki/images/7/7c/CH340DS1_EN.PDF
https://github.com/vdudouyt/stm8flash
brew install sdcchttp://www.colecovision.eu/stm8/128-EVAL%20Dhrystone.shtml
interrupts are priority-based outputs in 64 byte packets. priority output is real time input of "uniterruptable streams", specifically i2c read (max 920Khz) and uart input (max 18400bps) simultaneously
also note that i2c can stretch clock lines so really it's only uart interrupts
there are many buffers, but this one is mine(d) for its outputting content. all packets block on new input until it's swapped for the outputting. so buffers must clean faster than they collectively are filled for uninterruptable streams (and acks).
output from radius is asap and dumped into its buffers. simple packet id + NACK/ACK acknowledgement byte on the usb line.
ID0 + NACK/ACK ID1 + LEN + <=64 byte packet
input? it is 64 byte packets. wait for an nack, then resend, or continue
LEN + <=64 byte packet
input is synced at start by waiting for an 'R' on both sides
packets are USB-style repeated until a 0 length packet or < 64 length packet is received
MIT/ASL2
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | 20 pF | Capacitors_SMD:C_0603_HandSoldering | C4, C5 |
| 1 | 1 μF | Capacitors_SMD:C_0603_HandSoldering | C3 |
| 1 | 10 µF | Capacitors_SMD:C_0603_HandSoldering | C1 |
| 1 | 100 nF | Capacitors_SMD:C_0603_HandSoldering | C2 |
| 1 | CH340G | SMD_Packages:SO-16-N | U1 |
| 1 | CONN_01X04 | usbpcb:USB-A-PCB | P1 |
| 1 | CONN_01X04 | radius:RADIUS-CONN-2MM-M-1x4 | P3 |
| 1 | CONN_01X10 | Socket_Strips:Socket_Strip_Angled_1x10 | P2 |
| 1 | Crystal | Crystals:Crystal_SMD_0603_4Pads | Y1 |
| 1 | LD1117 | Power_Integrations:SO-8 | U2 |
| 1 | STM8S003F3P | Housings_SSOP:TSSOP-20_4.4x6.5mm_Pitch0.65mm | IC1 |
It measures 27.9 × 27.6 mm and has 2 copper layers, 1.6 mm thick.
12 parts, built around the STM8S003F3P6, CH340G and LD1117. 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.
From the tcr/radius repository on GitHub, at the commit this page was made from: the board is board/radius.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask tcr before reusing the design.

AidanHockey5/YM2151_VGM_STM32
A hardware arcade video game music player based on the STM32 platform driving a YM2151





kevinkrieger/CAN
CAN repository containing my CAN project, kicad files, firmware, datasheets, references, etc.

loldavid6/Theia
An easy, cheap and open source way to add IoT to a light switch.

CrashBangProto/Toadstool-Mega328
The Toadstool family is made up of breadboard-friendly prototyping boards that house a microcontroller, and modules called Caps that connect using a standard header.