(Note 1) Probably we won't use models to 32 bit because, In addition to not give real advantages in speed and accuracy, restrict the location of the serial Pin. We prefer to use the new PIC of the series 24, that will allow 12 or even 13 PIN and containing the new ADC, four times more accurate.

ICSP Connector – In Circuit Serial Programming

All modules of the system Theremino have the ICSP connector, that allows for easy programming “in circuit”, with type PicKit2 programmer, Pickit3 or similar.

Connecting the programming cable

On the position of the Pin 1 is indicated by a white dot. In newer versions with a triangle, like the PicKit2 programmer and PicKit3. In all cases the Pin 1 is always indicated with “VPP”.

Usually the programming cable has six wires, While the ICSP connector have five. The sixth wire do I need to use the programmer as an oscilloscope, or Signal Analyzer, and you don't need to program, then we'll let unplugged.

On some programmers find the location of the wire “1” It can be difficult. For example the PicKit3 of Olimex has no triangle, or p, to indicate this. Even reading the manual is unable to locate the Pin 1. The only images publishing do not refer to the connector on the controller, but on useless programming plate. So to find the Pin 1, use the following image:

Suggest that you mark your Pin 1 with a triangle or a black dot, holding the programmer with the LEDs and the connector at the bottom.

An example PicKit2 for sale on eBay – Click the image for a larger view.

If the previous link no longer valid please advise us. To find similar suggest that you do a search on eBay, with words “Usb Programmer PICKIT2”.

ZIF Sockets? No thanks.

Planning “in circuit” It tests the complete form and you have the assurance that all is well. Instead clog is not even sure that we can schedule (missing external components and power supply). And you save time, It takes more time, to check out the PIC from the socket and move it to the final circuit. So don't buy the clogs along with programmer. Are expensive and remain unused in a drawer.

In-circuit debuggers?

Forget about it, are complicated, expensive and very slow, will never use them. There are better ways to debug, for example MPLAB emulators, but above all the cunning (change the right spot and see what happens) dichotomous and technique (divide the problem into two parts and repeat until you find the error).

Programming methods and programmers

The first difficulty level, plans to use the HEX file, prepared by us and to program them with the PicKit2. A little’ more cumbersome you program them with the PicKit3.

The third level, only for the brave, is MPLAB, It also allows you to modify the firmware and recompile it. Start MPLAB is difficult, because you must also install the compilers. In addition to this, It is said that with MPLAB and PicKIt2 you can program all PIC models. And almost certainly you can't use PicKit3.

And finally there is MPLAB X, that makes programming the PIC a real fun (quite similar to a game of chance). MPLAB X was written to allow programming on Apple and Linux, and so not only it is not possible to program with Mac OS and Ubuntu, but you are no longer able to program even with Windows. Us We couldn't get it to work on any of our PIC and these are some comments found on the net:ENGLISH “… Unfortunately, the combination of new IDEs, compilers and devices can often result in rise of serious issues. Which is why it is often referred to as the "bleeding" edge, due to the pulling of hair, gnashing of teeth, sleep deprivation and occasional blood loss, While troubleshoot these issues ... "
Italian “…Unfortunately, the combination of new IDE, compilers and devices can often cause serious problems. This is often referred to in English, as “extent of the bleeding”, because of tearing your hair, teeth grinding, sleep deprivation and occasional bleeding, When solving these problems…”

Recommendations for programming

Unfortunately with hundreds of models of PIC, compilers, programmers & debuggers, No one can maintain parity between the developer tools. Before being able to fix all the bugs, Microchip designs some ten other PIC and start over. We are thus completing them ourselves, as we need.

This is not a fault of Microchip, absolutely! We are delighted that produce micro for every need, from microscopic ones up to very powerful dsPIC, and that they continue to produce increasingly better models, It's just hard with him. Other manufacturers (Atmel) continue to produce the same micro for fifteen years, the ADC are always the same, the performance still the same…

Soon we will pass to PIC24FJ128GB202 (with two extra bits in the ADC, then four times more accurate) and further complicate programming problems (especially for those on a PicKit3).

To operate some PIC and programmers may need:
– Manually choose the family (24) and the model of the PIC.
– Power the module from USB while programming.
– Feed from the same PC that is connected to the programmer.
– Use the High Voltage Programming (HVP).
– Perform an Erase.
– Disable Write Protect.
– Open, with Notepad, the file "PICkit2.ini" located next to "PICkit2V2.exe".
– Change the line "PE24: Y "into" PE24: N ".

The line "PE:24: No "disables loading of" Programming Executive ", in some cases, prevents program.

Instead set "Fast Programming" is a good idea. Dual programming speed.

How can we be sure that the PIC is programmed well

Better not to make memory readings because in many cases they deceive. To program you load your HEX, you press "Write" and checking the Green writing "Programming Successfully". In some cases they appear of the "Warning" in Orange, but no matter. The PIC is programmed well although there are Warning.

The only true test, is the USB that is activated and the led is blinking. On the Master led flashes fast as soon as the programming, instead on the slaves led blinks just after you configure the Pin with application HAL.

PicKit2 programmer application

This utility allows you to program the PIC without install MPLAB. Just get the HEX file and a PicKit2 programmer. The version that we publish is based on version 2.61 Microchip, that no more updates for many years. We have fixed many minor flaws and we renamed 3.0.

The version 3.2 also includes the “Device file” changed to program the new PIC24FJ128GB202 (We have not yet completed the firmware for 202, but I will post soon). It also includes disabling “Programming Executive” to prevent problems with some PIC.PicKit2_Programmer_V3.2.zipPickit2_Programmer_V3.2_WithSources.zip (version for programmers)

Application for the programmer PicKit3

The instructions for use, both in Italian and English, are in the file “Theremino_Pickit3_ReadMe” located in the folder “Docs”.

The program is “laptop”, do not install it in C:Programs but simply extract it from the ZIP, in una cartella dell’utente, for example, a subfolder of documents.

Application to edit the file Devices.DAT

Unfortunately both the PicKit2 that PicKit3 are not complete and fail to program all PIC models. This application serves to complete and correct data (that are located in the file “PK2DeviceFile.dat”). We have used it to correct the bit masks for PIC24FJ128GB202 and with this fix we could program them.DeviceFile_Editor.zip

Datasheets of PIC

These are the datasheets of all PIC used in system Theremino, accompanied with notes of application, data for the families of PIC and errata.PIC_Datasheets

Modify firmware and recompile it with MPLAB

To make changes to the firmware you must install MPLAB and the C compiler. We recommend that you install MPLAB version 8.92 from here: MPLAB_Archives (were to disappear here: MPLAB_IDE_8_92.zip)

After you install MPLAB C30 compiler must be installed: C30_CompilerRegister to download the compiler C30 is not binding, Microchip does not send SPAM. The C30 compiler must be installed in version “Lite”, lacking only a few optimization. The code is slightly larger, but it doesn't matter because we have very open spot in memory (were to disappear here: MPLABC30Combo_v3_31.zip)

Finally you have to load the complete project (not the only HEX file), fill it out, Verify that there were no errors during compilation and write it to the PIC.

MPLAB XThe new MPLAB X is known to have some difettucci, first of all you can't program the PIC. For those who want to try it, the link is this: MPLAB_X

Microchip Technology components

All modules of the system Theremino are made with micro-controllers Microchip series 24. The master uses a PIC24FJ64GB002, the slaves, using a PIC24F16KA101. These micro-controllers operate at 3.3 Volts for the voltage of 5 Volt quite unstable USB port, is stabilized with a Microchip regulator LDO (Low Dropout) the MCP1700 regulator type-3.3 V.

We chose the components of Microchip, by their very nature, that allowed us to implement the following innovations:
– UART transponder on a single wire.
– USB communication speed 12 serial megabits per second and up to 4 megabits/second.
– ADC breeze that, with proper oversampling, produce an effective resolution of over 14 bit (and up to 16 bit with the latest PIC24FJ128GB202)
– CTMU technology that facilitates the capacity measure very small.
– Low fuel consumption thanks to NW XLP™ Technology.
– Ability to build small modules thanks to SOIC Low Pin Count.
– Excellent support in DataSheet and ApplicationNotes.
– Comfortable and free development tools.

Donations

Our applications have no copyright, so you can make every use, without any limitation. We are not asking even for the name Theremino or the site, but remember to us and let us know your friends.

Any donations, even small, are very welcome and can help the next projects.

Get the system modules

The theremino team only deals with research and does not sell hardware.

The system is completely "Freeware", "Open Source", "Not for Profit" and "DIY", but there are manufacturers who can provide modules assembled and tested at a great price. One could hardly self-build them spending less.

Disclaimer

The software, the firmware and circuit diagrams published on this site,
should not be used for life support systems,
or in any project where failure can affect the safety.

This does not mean that the system is particularly unreliable. Indeed, precisely because of its smooth functioning, could someone use it inappropriately.
But theremino the system was not designed for applications that can be dangerous, for which we disclaim all responsibility.

Legal notice

This site does not capture and store personal information.

Even in the case of donations through PayPal, We do not collect user's details.

Everything on the site is completely free, Open Source and no copyright.

For the license, legal notices and the privacy of personal data, consult This page.