Skip to main content

Topics

This section allows you to view all Topics made by this member. Note that you can only see Topics made in areas you currently have access to.

Topics - pietja

2
Breakout boards / Infrared Thermopile sensor TMP006 Free PCB Build
My latest and most difficult free pcb yet the TMP006 Breakout board.

[attachment=0]
[attachment=5]
For this build i used the following tools:
Weller WSD81 Soldering Station with an LT-H tip (0,8 mm) set at 350°C for the 0603 components.
Atten 858D Hot Air Rework Station set at 300°C with the smallest nozzle and airflow at 3 for the TMP006 chip.
CW8100 No Clean Flux Pen which leaves no residue after reflowing.
An Fluke 17B Multimeter to check if the chip is soldered correctly.
And my BusPirate v4 to check if the chip works.

I started by cleaning both boards Ian send me for a free PCB code.
[attachment=4]
First i soldered the huge 0603 parts ;)
[attachment=3]
Next i cleaned the board again to remove the flux residue and put new flux from the flux pen on the board.
[attachment=2]
The last and most difficult part was aligning the TMP006 by eye and reflowing it for about 1 minute from the top and all the sides at a distance of about 15mm until all the balls melted to the pads, for this i didn't use any extra solder paste and i haven't pre tinned the pads because they were pre tinned when i got the boards.
[attachment=1]

To test if all the balls made contact i used my multimeter in diode test mode.
When you connect the red test lead to ground and the black test lead to one of the digital pins it measures 550mV, the VCC pin measures 420mV.

The last test was connecting the BusPirate to the board and using the I2C address search macro to check if the chip is detected and if its address changes when setting the address pins to a different level.

In the end both boards are working with the search macro at different addresses but i still have to test if they both actually can measure temperature.
3
Bus Pirate Development / Bus Pirate demo board v5
Ian talked shortly about the new Bus Pirate demo board v5 in his Bus Pirate development week video and that 1-Wire days are numbered.

From an old project i remembered there are a couple of 1-Wire slave library on the net.
https://github.com/smurfix/owslave
http://www.fabiszewski.net/1-wire-slave/

Maybe its an idea to have the new demo board support 1-Wire as well, this could also be useful to replace hard to get parts with a micro-controller to bridge from 1-Wire to a more supported bus like SPI or I2C.
4
Bus Pirate Development / BPv4 HD66717 I2C Demo
HD66717 LCD Controller
Everyone knows the HD44780 LCD controller but there are many others.

This demo is about the "BT21605AV-YETF-LED04-I2C" 2x16 LCD module with the less common HD66717 controller in I2C mode.

Overview
Chip: HD66717
Bus: I2C, pull-up resistors required.
Power: 2.7-5.5v
Reference: HD66717 Controller
Datasheet of the display
Second datasheet with the I2C address

Connecting this display requires a minimal of four connections.
Code: [Select]
Connections
BP      LCD

SDA    SDL
SCL    SCL
+5V    VDD
GND    GND

also connect 3.3V back to VPU on the Bus Pirate
[attachment=1]
Fist we need to setup the Bus Pirate to use the I2C protocol.
Code: [Select]
HiZ>m << Enter mode selection
1. HiZ
2. 1-WIRE
3. I2C
4. SPI
5. 2WIRE
6. 3WIRE
7. LCD
8. DIO
x. exit(without change)

(1)>3 << Select I2C
I2C mode:
 1. Software
 2. Hardware

(1)>2 << Select Hardware
Set speed:
 1. 100KHz
 2. 400KHz
 3. 1MHz

(1)>1 << Select 100KHz
Ready
I2C>W << Enable PSU
Power supplies ON
I2C>P << Enable pull-ups
Pull-up resistors ON
I2C>
In the second datasheet we found the default I2C address but we use the search option of the Bus Pirate to make sure.
Code: [Select]
I2C>(1) << Finding the Controller
Searching I2C address space. Found devices at:
0x70(0x38 W) 0x72(0x39 W)
I2C>
0x70 is the instruction address and 0x72 is the data address.
This controller is write only so we can't get any data back.

Now we are going to initialize the controller.
For more details see page 39 of the HD66717 datasheet.
Code: [Select]
I2C>
I2C>[0x70 << Addressing the controller for instructions
I2C START BIT
WRITE: 0x70 ACK
I2C>0x1C << Power control
WRITE: 0x1C ACK
I2C>0x4F << Contrast control
WRITE: 0x4F ACK
I2C>0x0F << Cursor control
WRITE: 0x0F ACK
I2C>0x14 << Display on/off control
WRITE: 0x14 ACK
I2C>] << We are done initializing the controller.
I2C STOP BIT
I2C>
This display is addressed as and LCD with 4 lines.
Each line in the controller is 12 characters long however we can only see 8 characters of them, so after 8 useful characters we need to send 4 useless ones to get back on the screen.

Sending
Code: [Select]
<Line 1>@@@@{Line 2}@@@@[Line 3]@@@@(Line 4)@@@@
will result in the following and get us back home:
Code: [Select]
<Line 1>{Line 2}
[Line 3](Line 4)
Now we can send something useful to the controller to finally see something on the screen.
Code: [Select]
I2C>[0x70 0x02] << first we go back home
I2C START BIT
WRITE: 0x70 ACK
WRITE: 0x02 ACK
I2C STOP BIT
I2C>[0x72 0x3c 0x4c 0x69 0x6e 0x65 0x20 0x31 0x3e] << sending "<Line 1>"
I2C START BIT
WRITE: 0x72 ACK
WRITE: 0x3C ACK
WRITE: 0x4C ACK
WRITE: 0x69 ACK
WRITE: 0x6E ACK
WRITE: 0x65 ACK
WRITE: 0x20 ACK
WRITE: 0x31 ACK
WRITE: 0x3E ACK
I2C STOP BIT
I2C>[0x72 0x40 0x40 0x40 0x40] << skipping past the 4 hidden characters
I2C START BIT
WRITE: 0x72 ACK
WRITE: 0x40 ACK
WRITE: 0x40 ACK
WRITE: 0x40 ACK
WRITE: 0x40 ACK
I2C STOP BIT
I2C>
[attachment=0]
Now its easy to send anything we want.
Code: [Select]
[0x70 0x1c 0x4f 0x0f 0x14] ;initialize

[0x70 0x02] ;return home
[0x72 0x3c 0x4c 0x69 0x6e 0x65 0x20 0x31 0x3e] ;<Line 1>
[0x72 0x40 0x40 0x40 0x40] ;@@@@
[0x72 0x7b 0x4c 0x69 0x6e 0x65 0x20 0x32 0x7d] ;{Line 2}
[0x72 0x40 0x40 0x40 0x40] ;@@@@
[0x72 0x5b 0x4c 0x69 0x6e 0x65 0x20 0x33 0x5d] ;[Line 3]
[0x72 0x40 0x40 0x40 0x40] ;@@@@
[0x72 0x28 0x4c 0x69 0x6e 0x65 0x20 0x34 0x29] ;(Line 4)
[0x72 0x40 0x40 0x40 0x40] ;@@@@

[0x70 0x02] ;return home
[0x72 0x42 0x75 0x73 0x50 0x69 0x72 0x61 0x74 0x40 0x40 0x40 0x40 0x65 0x76 0x34 0x20 0x44 0x61 0x6e 0x67 0x40 0x40 0x40 0x40 0x65 0x72 0x6f 0x75 0x73 0x20 0x50 0x72 0x40 0x40 0x40 0x40 0x6f 0x74 0x6f 0x74 0x79 0x70 0x65 0x73 0x40 0x40 0x40 0x40] ;BusPirat@@@@ev4 Dang@@@@erous Pr@@@@ototypes@@@@


Note this is only the basic stuff for this controller, like the HD44780 it also has the ability to use custom characters (8 for the HD44780 and 4 for the HD66717) and it has software controlled contrast.
5
Project logs / PICquino32 DIP Free PCB Build
My latest free PCB Build the PICquino32 DIP.

[attachment=1]
Again everything is hand soldered with my trusty Weller WSD81 soldering station.
Its build with a mix of old and new parts, most passives i got from an old lexmark laser printer, some parts came from ebay, the the other parts i got from Farnell so did the PIC in a huge tray again.

[attachment=0]
When programming the FTDI chip to show PICquino32 DIP as its name don't enable High Current I/O's because it will stop the reset button from working.
6
Breakout boards / ENC424J600 Free PCB Build
I have build another abandoned DP project.
This time its the ENC424J600 breakout board.
The only hard thing about this build was getting the ethernet jack but i found one seller on ebay that got them.
[attachment=0]
I haven't tested it with a micro yet but after soldering and connecting the power from my BPv4 the leds on the board are working and the network switch sees a working network connection.
[attachment=1]
Next thing to do is to try and get it working with an open-source network stack.
7
Bus Pirate Development / New Bus Pirate v4 LCD adapters
A followup on a couple of new LCD adapters designs for the BPv4.

First a cheap, fast, bi-directional passive adapter.
[attachment=1]
[attachment=2]

The second adapter is an update on the existing BPv3 adapter with PWM or manual control for the backlight and contrast.
[attachment=3]
[attachment=4]

On both adapters the BP can sense the contrast voltage, there are solder jumpers to select the supply voltage to the LCD and solder jumpers to swap the backlight pins.

The eagle designs are attached and are in the svn as well.
8
Bus Pirate Support / BusPirate 4 OTG free PCB built
Today i finished my BP v4 pcb.
For this one i used an USB On-The-Go connector because the PIC can support it with the right firmware if that ever will be made ;)
The EEPROM is the biggest farnell had in stock (24AA16T 16Kb) and the CD4066 i replaced for an HEF4066 with should be the same.

[attachment=1]

[attachment=0]

[attachment=2]

( ! ) Fatal error: Uncaught exception 'Elk_Exception' with message 'Please try again. If you come back to this error screen, report the error to an administrator.' in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
( ! ) Elk_Exception: Please try again. If you come back to this error screen, report the error to an administrator. in /var/www/dangerousprototypes/forum/sources/database/Db-mysql.class.php on line 696
Call Stack
#TimeMemoryFunctionLocation
10.01822361688session_write_close ( )...(null):0
20.01862493280ElkArte\sources\subs\SessionHandler\DatabaseHandler->write( )...(null):0
30.01862494056Database_MySQL->query( ).../DatabaseHandler.php:119
40.06712632792Database_MySQL->error( ).../Db-mysql.class.php:273