NEW
SD FAT32 Sound Recorder
SD Card Data Logger
FAT32 Player ATtiny85/45
Birthday Card ATtiny85 / PIC
ATtiny85/45 Counter
ATtiny85/45 EEPROM Doorbell
ATtiny Water Softener
CH341 USB TO I2C/SPI/EPP
USB to I2C OLED
USB to LCD
USB Input Output
SD CARD
CH376 USB Picture Frame
SD FAT32 Player PIC12F1822
W25Q64 Flash Recorder
Picture Frame PIC16F690
Color OLED Picture Frame
SD FAT32 TFT Display
Doorbell with SD/EEPROM
SD Talking Clock
SD Sound Recorder
SD FAT32 wav Player
SD Arduino Recorder
Arduino Picture Frame
FREQUENCY COUNTER
AD9833 Waveform Generator
Chrome Browser Counter
Arduino LED MAX7219 Counter
LCD Accurate Counter
OLED Accurate Counter
MilliHertz Counter
PIC Counter For Android
MAX7219 LED Counter
WiFi Frequency Counter
Frequency Generator
OLED Counter PIC12F629
Talking Frequency Counter
TFT Counter PIC16F628A
SSD1306 Counter PIC16F628A
SSD1331 Counter PIC16F628A
Arduino Counter for PC
OLED Arduino Counter
OLED Frequency Counter
TFT 10MHz Counter
PC Counter
LED Counter
Scope Screen Counter
LCD 16 x 2 Counter
LCD Arduino Counter
6MHz Android Counter
NIXIE Android Counter
Bluetooth Counters
USB Counter
OBD2
OBD2 RPM meter PIC16F876A
OBD2 Engine Rev Counter
OBD2 Diagnostic app
OSCILLOSCOPE
Logic Analyzer
PIC12F1822 Scope for PC
Arduino Oscilloscope for PC
Arduino OLED Oscilloscope
Android Oscilloscope
TFT Oscilloscope
USB Oscilloscope
THERMOMETER
Thermocouple 1023 Deg
Thermometer For Browser
OLED Thermometer PIC12F629
OLED Room Thermostat
TFT Clock and Thermometer
LED Thermometer
USB Thermometer
Serial Thermometer
Serial Thermostat
USB DS18B20 Sensor
TIMER / CLOCK
Cuckoo Clock
Real Time Clock DS3231
LED TM1637 Timer
OLED Timer Thermometer
TFT Timer Thermometer
LED Timer
LCD Timer
Clock Thermometer
Talking Clock PIC16F628A
Android Talking Clock
WiFi
WiFi, Ethernet
WiFi Thermometer
WiFi ESP8266
USB
IO for Chrome Browser
USB 16x2 LCD
USB TFT display BMP
USB Meter
USB Input-Output
USB Input-Output Android
DATA ACQUISITION
Analogue to USB (CH341)
MCP3201 on Serial Port
PC Analog Input (USB-UART)
SERIAL PORT
Serial TFT Text
Serial Inputs Outputs
Serial Port LCD
Analogue Signal to Serial
OTHERS
Talk to Arduino
HC-SR04 Sensor
OLED Amp Meter
PC digital I/O (no coding)
Analogue Signal to LPT
LCD Display on LPT
Water Softener
Solar Charger
PIC Music
Code Lock
SMALL PROJECTS  
  Technical Tips  

USB TO SPI - CH341 TFT DISPLAY

CH341 module (from eBay) converts USB to I2C/SPI/EPP. The module links are set to 5V and i2c-spi. The TFT module is a 1.8" 128 X 160 pixel driven by SPI interface and using ST7735 driver IC.
PC app is in Visual Basic-VS2010, it uploads BMP files to the display.
BMP files: Resize image file to 160x128 pixels. Save the files as 24 bits bmp.
The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html

ch oledoledvb

line

CH341 USB INPUT OUTPUT

CH341 module (from eBay) converts USB to I2C/SPI/EPP. The module links are set to 5V and i2c-spi. 4 digital outputs on pins D0-D3 and 4 digital inputs on pins D4-D7. PC app is in Visual Basic-VS2010, it display the digital inputs, green is high.
The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html

ch clock

line

USB TO LCD USING CH341

CH341 module (from eBay) converts USB to I2C/SPI/EPP. The module links are set to 5V and i2c-spi. The LCD module is 16x2 44780 driver IC.
PC app is in Visual Basic-VS2010, it display the text on the LCD. The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html

choled clock

line

USB TO I2C - CH341 CLOCK

CH341 module (from eBay) converts USB to I2C/SPI/EPP. The module links are set to 3.3V and i2c-spi. The OLED module is a 0.96" 128 X 64 pixel driven by I2C interface and using SSD1306 driver IC. The font used is 5x7 pixels universal font.
PC app is in Visual Basic-VS2010, it display the PC clock. The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html

choled clock

line

USB TO I2C - CH341 OLED TEXT

CH341 module (from eBay) converts USB to I2C/SPI/EPP. The module links are set to 3.3V and i2c-spi. The OLED module is a 0.96" 128 X 64 pixel driven by I2C interface and using SSD1306 driver IC. The font used is 5x7 pixels universal font.
PC app is in Visual Basic-VS2010, it display text written in the app to the OLED. The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html

vbcholed oled

line

USB VOLTMETER - CH341 MCP3201

CH341 module (from eBay) converts USB to I2C/SPI/EPP. The module links are set to 5V and i2c-spi. The ADC is MCP3201 12 bit. 10 or 12 bits is selectable, reading intrvals are 1 second or 0.1 second.
PC app is in Visual Basic-VS2010, it display digital and analogue voltage. The VB wrapping of DLL is taken from GitHub https://github.com/aa4e/ch341_vb . DLL is installed to PC by setup.exe in downloaded driver CH341PAR.ZIP https://www.wch.cn/downloads/CH341PAR_ZIP.html
LTC1285, ADS7822 are direct replacement to MCP3201.

vbcholed 

line

USB HID DRIVE OF LCD MODULE

Using PIC18F2550 for connecting 16x2 LCD module to USB port . Included Visual Basic 6 code, VS2005 C# code based on Microchip code, PIC C code and a circuit diagram. The circuit is powered by the USB. The interface to the PC is HID class.
There are several makes of the LCD module that are interchangeable, the one I used is UC-16207. The LCD module has a 14 way connector, 8 pins are used for data, 2 for supply, register select(RS), read/write, enable (E) and contrast adjust. The R/W input must be connected to earth to make sure that data lines are in input mode. The VB application has only basic functions, it can be changed to interface the display for a variety of inputs.
When USB is plugged it verifies the connection with the host and then initialize the LCD. On typing a character the USB updates all the 32 characters.
HID class (human interface device) is a class of devices like the mouse and the keyboard, the data transfer rate is limited to 64KB/S. The PC already has a driver for HID USB.
VB6 code includes guidance to setting up the PC. The PC register the PID and VID (product ID) of the USB device when it's plugged, the VB code uses these ID's to communicate with the device. For commercial VID it is needed to buy it from USB-IF, but in your lab you can use any number.
The source code is derived from freeware from these sources: http://janaxelson.com/usb.htm , http://openprog.altervista.org/USB_firm_eng.html
Code was written on MPLAB 8x and compiled with C18 ver 3.30. PIC18F2550 was programmed using Velleman K8076.
Software includes PIC code and VB6 code. You are free to use the circuit diagram and the VB software with no limitations.

 

Circuit Description
See also Technical Tips

PIC18F2550
Pin 14 is 3.3V internal supply for the USB transceiver. 0.22uF is required for regulation.
Pins 21 to 28 are port B outputs.
Pins 15,16 are the data lines to the USB connector on the PC.
Pin 20 is the PC 5V powering the PIC and the LCD module. It is limited to 100mA by the PC. 0.47uF is for decoupling.
For USB wiring info: http://www.interfacebus.com/Design_Connector_USB.html

LCD Module
20K trimmer is needed to adjust the contrast voltage which vary with different batches of LCD.
Pins 7 to 14 are data inputs D0 to D7. Pin 6 is clock input, enables LCD module to read the data.
Pin 4 is Register Select input, it is used for 16 bits instruction.
Pin 5 must be connected to earth to insure that data lines are always inputs.



Name:

Comments and questions

Copy the number from the picture It stops net-robots from adding comments.



05.12.2014 - 07:38
Name: tharindu
Comment: moty i need asm file but it not found give me please

25.10.2011 - 18:06
Name: jirka
Comment: Hi I need something of you yet,when this is no problem.I wrote you on your email,but I got no answer,so I write here again. I tried to make this setting,but I have a few problem.I wanted to setting in MPLAB IDE, but there is for example BOR enabled only or enable with software ( SBOREN) and BORV is with max or min besides 3. CCP2MX input/outpu besides OFF or ON STVREN stack full/underflow besides on or of And to setting DEBUG isnīt here. When this is possible,so send me the HEX ,which includes the setting. I beginn with pic,and I programmed a few PIC. At old species PIC (for example PIC16F84) this is easy to make setting,because there is only four choos. But when I opened setting window at MPLAB IDE for PIC18F2550,so I was very surprise, how many it includes. Thank you for your answer

17.10.2011 - 18:47
Name: Moty
Comment: Hi Jirka, The config. settings in main.c are: #pragma config PLLDIV=1, CPUDIV=OSC3_PLL4, USBDIV=2, FOSC=XTPLL_XT #pragma config IESO=OFF, PWRT=OFF, BOR=ON_ACTIVE, BORV=3, VREGEN=ON, WDT=OFF #pragma config MCLRE=OFF, PBADEN=OFF, CCP2MX=OFF, STVREN=ON, LVP=OFF, XINST=OFF, DEBUG=OFF If the USB device is detected but there is nothing displayed try to increase the clock and 2ms delay by a factor of 5. Some LCD's need lower frequencies.

17.10.2011 - 17:17
Name: jirka
Comment: good morning I have one question about LCD 16x2 on USB. The file for PIC18F2550 is without setting MCLR,Crystal,wdt......... When this is possible,so write me that. I tried to make setting but it doesnīt work. Thank you for your answer

iconFlag Countermoty22.co.uk  2008-2024