English Version Spanish Version French Version

MIDIbox Hardware Platform, PIC Burner

Please note...

This module has been discontinued due to problems with newer PC hardware.

See "Programming the PIC" chapter at the MBHP_CORE page for updated info about options today.


MBHP_BURNER is compatible to Brenner5 from sprut.de and can be used to program all PICs of the MBHP, especially for the PIC16F87x and PIC16F88(A) (-> PBrenner) and the PIC18F452, PIC18F4550, PIC18F4620 and PIC18F4685 (-> P18) - thanks to sprut.de for this nice piece of software!

In difference to "Brenner5", MBHP_BURNER uses a LM317 for an adjustable programming voltage. Pulldown resistors have been added to pin RB5 (for PIC18F) and RB3 (for PIC16F) to ensure that the LVP mode is disabled. The LPT outputs are buffered via Schmitt Triggers, which are especially required for a glitchless clock signal.


PCB data, can be viewed, modified and converted with Eagle Light. The .pdf based schematic has been created with xcircuit. There are no special eagle schematics available, since components have been netlisted in the .brd file directly!
Module Schematic Layout Data Quick-view
MBHP_BURNER_V1 mbhp_burner.pdf mbhp_burner_v1.brd mbhp_burner_v1.gif
MBHP_BURNER_V1_PLUS mbhp_burner.pdf + mbhp_burner_16f88_adapter.pdf mbhp_burner_v1_plusC.brd mbhp_burner_v1_plus.gif
Additional informations
File Size Description
mbhp_burner_16f88_adapter.pdf 3k Programming Adapter for PIC16F88 (used by the MBHP_IIC_MIDI project)
mbhp_burner_orderlist.txt 1k Reichelt orderlist

Soldering Guide

Start with soldering the 2 bridges which save you from creating a 2-layer board. You can use the cutted legs of caps and resistors, before you throw them away after you finished all the modules! :-)
Stuff the components: IC-socket, Resistors, Caps, Diodes, Transistors, Connectors...
Before putting the ICs into the sockets, adjust the programming voltage like described under "Testing".
Thereafter plug the PIC into the socket and try to program the chip.
Same circuit on a vectorboard.

Michael Klein has written an alternative tutorial in german and english, which can be found under: http://www.mikes-elektronikseite.de/edrumprojekt.htm


  • Never plug a PIC into the socket if you haven't done the initial hardware checks. Also, do not plug in a PIC if the RED or YELLOW LED is lit, because the PIC could be permanently damaged if the pins are getting in touch with an active Vdd/Vpp level before the Vss pins are connected to ground!
  • Connect the external power supply, the green power LED should light up
  • Adjust the programming voltage with pot P1 and measure it at J2:VP (MCLR# pin)
    • 12.5V for a PIC18F or PIC16F...A device
    • 13.1V for a PIC16F... device
  • Connect MBHP_BURNER to the parallel port
  • Start the P18 programming software
  • If the "programmer detected" message doesn't appear, you can check the parallel port with a simple test adapter which is described in the help file of P18
  • Change to the Options->Hardware menu, select the "Tait classic, Brenner5, Brenner3" mode
  • switch on Vpp - the red LED should go on. Measure the voltage at the MCLR# pin, it should be the same like adjusted before
  • switch off Vpp - the red LED should go off, the voltage at MCLR# should turn to 0V
  • switch on Vdd - the yellow LED should go on. Measure the voltage at the Vdd pins, it should be 5V
  • switch off Vdd - the yellow LED should go off, the voltage at the Vdd pins should be 0V
  • do the same checks with the clock and data pin (RB6 and RB7). The voltage should switch between 0V and 5V
  • Click on the "Data In" button - Data In should get the same value like selected with one of the above sData buttons
  • If these tests are passing, Vpp and Vdd should be switched off. Thereafter insert the PIC into the socket.
  • Click on "Identify PIC in Programmer" -- the right PIC type number should appear in the message screen
  • Load the .hex file and click in "write HEX-file into PIC". P18 will program and verify the memory image. An OK message will appear once this is done.


  • If the PIC cannot be detected, or if the programming procedure works unstable, a printer or scanner driver which is running in background could be the reason - the driver has to be disabled in this case.
  • Such an issue could also be related to the interface and PIC timing settings. They can be changed under Options->Timing. In order to check the relevance, you could move the sliders to the slowest timings first - once you were able to program the PIC with success, you can try to find the best values.
  • Check the cable to the parallel port; in the meantime two guys had problems just because they tried to recycle an older one. A 1:1 LPT cable just only costs 1 EUR at Reichelt (AK 404)

Burning under Linux

PiKdev is a nice development environment which provides the independent program "pkp" which allows to flash PIC devices from the commandline. The default setup works well with MBHP_BURNER, no additional modifications are required - here my .pkprc file just for documentation:

# settings for parallel port device : 
# (use /dev/parports/x if your system is devfs based)
# pin assignments: negative value means inverted signal
# the following values are working with MBHP_BURNER


Most parts of the circuit are inspired from Brenner5 from sprut.de, and PICProg from Martin Clausen. Thanks also to Michael Klein, who created the PCB layout.

Last update: 2024-05-08

Copyright 1998-2023, Thorsten Klose. All rights reserved.