Tag Archives: PIC18F2550

USB LCD Controller

This project is a USB Generic Human Interface Device (HID) device based on a PIC microcontroller. It is a USB interface for alphanumeric LCD display where the user as desired can program it. USB interface is implemented by using PIC18F2550 microcontroller ideal for low power (nanoWatt) and connectivity applications that benefit from the availability of three serial ports: FS-USB (12 Mbit/s), I2C and SPI (up to 10Mbit/s) and an asynchronous (LIN capable) serial port (EUSART). Large amounts of RAM memory for buffering and enhanced FLASH program memory make it ideal for embedded control and monitoring applications that require periodic connection with a (legacy free) personal computer via USB for data upload/download and/or firmware updates.

The hardware design is extremely simple. It can be build using the supplied PCB artwork or on a stripboard or breadboard. The circuit consists of a PIC18F2550 with a 20Mhz resonator and the required components for the LCD screen and the USB. The display is connected to the controller board using single strand wire. In addition, the contrast control potentiometer is placed underneath the board to allow easy adjustment after the LCD screen has been mounted.

USB LCD Controller is definitely useful since it can view various types of information taken from the PC such as temperature, time/date, MP3 song titles, emails, RSS feeds, all that LCD Smartie or other program supports. This provides ease in reading as well as accessing emails and songs in the playlist. Furthermore, the device can be easily constructed and reprogrammed, making it favorable to the users.

USB LCD Controller – [Link]

PICnano breadboard based on PIC18F2550


by Jesus Echavarria :

Hi all! With a bit of delay, here’s my last work, a PICnano breadboard based on the PIC18F2550 microcontroller. I have in mind a new project and I want to use an small board, like the Arduino Nano board. This new project is battery powered (3,7V Li-Ion battery). After checking the schematics of the Arduino Nano, I see that the microcontroler is powered at 5V. Of course, I can unmount the linear regulator (U3) that is on the board, and bypass the VIN to the microcontroller power supply. But I think it’s funny try to develop a new module when you’ve access to the microcontroller power supply! Also, I want to work with PIC microcontrollers after many years, so here’s what I design!

PICnano breadboard based on PIC18F2550 – [Link]

Thermocouple Auto-Zeroed Reference Design


The MCP6V01 auto-zeroed op-amp features an ultra low offset voltage (VOS) and high common mode rejection ratio (CMRR), which makes it applicable to temperature measurement. The MCP6V01 thermocouple auto-zeroed reference design demonstrates how to measure electromotive force (EMF) voltage at the cold junction of the thermocouple in order to accurately measure temperature at the hot junction.

The difference amplifier is implemented using the MCP6V01 and 0.1% tolerance resistors. It amplifies the EMF voltage at the cold junction of the thermocouple. The MCP9800 senses temperature at the type K thermocouple’s connector. It should be located as close as possible to the connector on the PCB. This measurement is used to perform cold junction compensation for the thermocouple measurement. The MCP1541 provides a VREF (4.1V) to the internal 10-Bit ADC of the PIC18F2550 and sets the reference voltage for the difference amplifier. The CVREF is the internal comparator voltage reference of PIC18F2550, which is a 16-tap resistor ladder network that provides a selectable reference voltage. The MCP6001 buffer amplifier eliminates the voltage reference output impedance problem and produces the voltage VSHIFT.

The 2nd order RC low-pass filter that is implemented in this circuit can remove the high frequency noise and aliasing at the ADC input. The ADC of PIC18F2550 completes the analog-to-digital conversion. The data will be transferred to the PC using the USB interface. The thermal management software on PC is used to perform data display to show the real-time temperature and apply cold junction compensation and data linearization to determine the actual temperature of the thermocouple’s hot junction (weld bead).

Thermocouple Auto-Zeroed Reference Design – [Link]

Open Programmer v0.8.x


Alberto Maccioni posted an update on his multi-chip opensource programmer based on a PIC18F2550. It supports PIC, I2C-SPI-MicroWire EEPROMs, some ATMEL AVRs, and (soon) other devices:

In the last few years, as serial and parallel interfaces have almost disappeared, electronics enthusiasts find even more difficult to program microcontrollers; old time programmers don’t work any more; common solutions include using USB to serial adapters (which can’t accept direct access but only slow API calls), or add-on interface chips, like FTDIxxxx, which appear substantially as serial interfaces and require custom or proprietary drivers. So why not use PIC controllers and their native USB interface? After searching a while I couldn’t find an USB programmer which was at the same time functional, free, and open source, so I decided to design one.


Open Programmer v0.8.x – [Link]

Arduino LCD Oscilloscope


semifluid.com writes:

It has been 7 years (!) since I posted my PIC18F2550 KS0108 Graphical LCD Oscilloscope code and schematics. I have long since taken the circuit apart, sold my PIC microcontrollers, and moved on in my life (as one can surmise from my most recent posts detailing my graduate and postdoctoral work). However, I still get inquiries about the Microchip PIC oscilloscope, so I decided to recreate it using a simpler setup using my Arduino Fio.


Arduino LCD Oscilloscope – [Link]

PIC18F2550 USB development board

dangerousprototypes.com writes:

Palma made a USB development board for the PIC18F2550. These chips are really popular, and there is a bunch of projects floating around the internet with them, even our own USB IR Toy, and USB LCD Backpack use them.

This board is basically a breakout board, with decoupling capacitors, and a USB jack. We like that all the broken-out pins are connected two 2 pins of the dual row female header, making it easier to connect one pin to a more then one external component.

You can also check out our PIC18F2550 Breakout Board, build in the “blade

PIC18F2550 KS0108 Graphical LCD Oscilloscope

Steve @ semifluid.com writes:

Using the PIC18F2550 GLCD Text Test as a basis for further experimentation, I put together a simple and accurate graphical oscilloscope using a PIC18F2550 microcontroller and a AGM1264F graphical LCD. The oscilloscope measures the average voltage, the maximum voltage, the minimum voltage, the peak-to-peak voltage, and the zero-crossing frequency for a DC signal over 100 samples. The oscilloscope has a built in edge trigger function that can be set to capture on rise or fall (or disabled altogether). The time scale for the display is variable and can be easily redefined using the changeTimeDivision function. Likewise, the voltage range can be change to 0-5V, 0-2.5V, and 0-1.25V. The main limitations of this oscilloscope include relatively slow acquisition time and sampling rate (~60kHz) and the fact that the inputs are limited by the constraints of the internal ADC. However, it is a very nice display and I highly suggest you view the videos to see it in action.

PIC18F2550 KS0108 Graphical LCD Oscilloscope – [Link]

Kidogo: 8 channel USB Digital Signal Injector

Dilshan developed a 8 channel USB digital signal generator and an open source Windows application called Kidgo Player to drive it. The hardware is basically just a PIC18F2550 USB breakout board used to provide 8 digital outputs for his software. The Kidgo Player’s source is available on GitHub, and has the following features – [via]

  • Save waveforms and settings as binary file (KDF file) or export waveform as a text file
  • Playback controls such as “Play to segment

Eaglefree PIC18F2550 development board

This is a development board for the PIC18F2550, I designed this board inspired by the TP-2550 development board by Giovanni Lafebre (site is in Spanish). Main difference between the original and my design is the size, mine is 10×8 cm, so it has less elements. This is because I created this board using the free version of Eagle, so I adjusted to its restrictions. [via]

Eaglefree18f2550 features:

  • 8 LEDs.
  • 4 push buttons with pull-down 220Ω resistors.
  • 2 potentiometers.
  • 1 relay with an active LED indicator. For using the relay, you must provide an external power supply.
  • 1 H bridge.
  • 1 barrel connector for H bridge power supply.
  • The board can be supplied from the USB or from an external supply (jumper selectable).
  • 5V regulator onboard.
  • ICSP port for PIC programming.
  • Jumper for enabling/disabling programmer voltage. This allows for the programmer to be powered from the board supply, so we can have the programmer plugged to the board all the time.

Eaglefree PIC18F2550 development board – [Link]