UCC3941 DC-DC converter
Simple microphone pre-amplifier
1-transistor microphone pre-amplifier used by me with computer. Because signal ground of audio card
and ground of power supply could be separated I recommend using external (not PC) power supply or cell.
I used this amplifier few years ago with CX4235 and SB128PCI sound cards - their output buffers where too weak to drive 16 ohm earphones (especially integrated Crystal Sound card). Power supply: 7..12V (use electrolitic capacitors with adequate maximum voltages). Op-amp: TL082 or similar.
RS232 <-> TTL voltage converter
RS232 to uC ad-hoc voltage converter. Few parts should fit into DB9F plug. Avoid using high transmission speed or long (> 3 m) cable with this circuit.
High voltage detector
Simple non-contact high voltage detector useful for locating power lines in walls or locating damaged fragment of supply cord.
Similar tools can be bought very cheap nowadays, but it's still fun to do on your own. "Antenna" can be made
from 3 millimeters dia screw isolated for safety with thermo-schink tube.
See also: simplified detector circuit
STK200/STK300 with long cable
From my experience some problems with STK200/300 programmer could be solved by adding additional capacitor to minimize SCK line ringing (line with fastest state changing). You can find more suggested programmer modifications at avrfreaks.net.
Simple PIC programmer
PIC programmer known as COM84. You can find also scheme with 78L05 to supply
target microcontroller, but I found powering it from serial port is unreliable
(at least with PIC18F2550/4550). Works with e.g.
(it is detected as JDM). Programmer may not work with some "modern" or laptop
serial ports as it requires about 10 V on TXD pin (to enter high voltage programming
mode for PIC18F2550 9.0 - 13.25 V on MCLR pin is necessary).
STLink GDB server
stlink_20210829.zip - built 2021.08.29 from current sources from https://github.com/stlink-org/stlink with VS 2017 as current release version does not support STM32G4 and I also couldn't find working OpenOCD for Windows working with STM32G491.
STM32F0DISCOVERY I2S -> analog/DAC
STM32 Nucleo QSPI Flash mini PCB
STM32 SSD1306 test
Current limiter using light bulb
PCB for amazing AVR programmer with software USB implementation. For detailed
description, firmware package and license information look at
Thomas Fischl's USBasp webpage.
Note: I have some problems with long USB cable connection: device doesn't work so well if it's connected to front-side USB socket of my PC - I have to connect it to back panel. Probably cable length is critical - I recommend use 1,8m or shorter USB cable.
Really short manual in Polish
routing scheme (mirrored bottom side)
assembly scheme (four 0805 capacitors with mirrored partname are located at bottom side)
additional .eps routing file
Latest hardware version - files modified 17.04.2008 - added 2 3V6 Zener diodes for better compatibility with some motherboards
Approximate speed (ATmega32@4.9152MHz, file size = 8366B): FLASH programming 3.15kB/s, FLASH reading 4.85kB/s.
2006.03.17: avrdude-gui (754kB zip) with added usbasp option (sourcecode v0.2.0 and binary, dev-c++ 126.96.36.199-wx-beta-6.8). Thomas Fischl's patched avrdude included.
2006.04.06 WinAVR project template available.
2006.05.24 Added info about wrong signature reading and device programming error with low microcontroller operating frequency (e.g. RC 1MHz, just like default for ATmega8) - use jumper 3 in this case.
2006.12.21 Some modifications to avrdude-gui, avrdude-gui_v0.2.1.zip (652kB):
- corrected command line for writing fuses (0xAB:m format),
- "-F Verify the device signature" description changed to "Override signature check"
- changed component displaying output from wxlistctrl to memo: auto-scrolled, no long line cut, mouse text selection,
- removed "terminal mode" checkbox,
- slightly compacted UI,
- format comboboxes: changed to read-only
- changed some fonts to courier new (useful e.g. with avrdude verbose output),
- changed output for read fuses values from "con" to "[fusename].dat"; I don't think con output has any effect.
2006.01.03 I had problems with usbasp.2006-09-16.tar.gz + avrdude 5.2, but latest usbasp.2006-12-29.tar.gz
with avrdude 5.3.1 seems to work fine. Here is avrdude 5.3.1
compiled for win32 (Cygwin).
Notice: I undefined HAVE_LIBHID macro, so there could be problem with AVR-Doper programmer if you'd like to use this.
Notice 2: cygusb0.dll required by avrdude binary made with cygwin = libusb0.dll or libusb.dll, just rename it and place in avrdude or (better) system directory.
2009.03.18 Added Avrdude 5.6 win32/cygwin (zip 528kB). Notice: if avrdude shows message about not finding device with VID = 0x16C0, PID = 0x05DC but you can see usbasp under device manager and it's VID/PID pair is the same as required by avrdude, update libusb driver to 0.1.12.1 version. You can find both this and older driver version inside usbasp.2009-02-28.tar.gz archive.
2009.05.10 Added file avrdude_5_6_r815.7z (7-zip 316kB) - avrdude 5.6 z
with patch from Revision 815.
Using usbasp 2009-02-28 firmware this avrdude version allows to select SPI frequency during programming by -B spi_delay option. SPI frequencies have discrete values, avrdude selects SPI period to value near to requested spi_delay microseconds.
With small modification in default avr-gcc makefile this version allows fast programming of "fresh" MCUs that have default RC 1MHz clock without touching SCK jumper. If you are loading firmware to more than a few AVR boards in a row than you will definitely this useful:
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) # added: AVRDUDE_SCK_FLAGS = -B 5 ... # Program the device. program: $(TARGET).hex $(TARGET).eep # Set LFUSE, HFUSE to switch to fast MCU clock, # e.g. crystal (low SPI frequency is used) $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_SCK_FLAGS) \ $(AVRDUDE_WRITE_HFUSE) $(AVRDUDE_WRITE_LFUSE) # Program MCU using fast SPI clock $(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_LOCK)
2009.08.17 Added Avrdude 5.8 win32/cygwin (zip 250kB, debug symbols stripped - smaller executable, giveio and .conf included in archive, cygusb0.dll 0.1.12.1 required).
2010.04.11 Added Avrdude 5.10 win32/cygwin (zip 263kB, debug symbols stripped - smaller executable, giveio and .conf included in archive, cygusb0.dll 0.1.12.1 required).
* New devices supported: - AVR32A0512 (JTAGMKII only) - ATmega32U4 - ATtiny4 - ATtiny5 - ATtiny9 - ATtiny10 * New programmers supported: - BusPirate - Arduino - JTAGICEmkII and AVR Dragon in PDI mode (ATxmega devices) - STK600 and AVRISP mkII in TPI mode (ATtiny4/5/9/10) * Bugfixes - see ChangeLog and ChangeLog-2009 for details
2011.03.23 Added step-by-step compilation description for avrdude / MinGW+MSYS. This is also page with newer avrdude binaries.