Wednesday, February 5, 2014
Arduino UNO as a USB to GPIB adapter / controller
NOTE:
This version is OBSOLETE!! Please go to this post for the 6.1 release software and documentation.
---
Version 1 of this project is aimed to provide a cheap and quick GPIB solution to those that need to gain control over a single instrument and interact with it (e.g. to calibrate instruments that can be calibrated by GPIB only -- 6632A Power Supply being a good example).
I supposed that cheap adapters were available on the market to interface GPIB instruments with a PC. I was wrong. The only feasible solution is to go with a Prologix USB to GPIB converter, still it would have cost me some tens of bucks.
Other solutions required buying or building hardware.
On the other end I had an Arduino UNO floating around on my bench waiting for a problem to solve other than blinking leds or writing "hello world" on an LCD..
So I decided to face the challenge of writing down a c++ program and have the Arduino play the adapter role I was looking for.
To make a long story short.. (I supposed that GPIB was simple at least as much RS-232 is, .. and it is not! I was wrong again!) after reading a lot of IEEE-488 documentation and giving a try to a similar program I found over the internet, I got a decent implementation of a GPIB controller out of my Arduino UNO. This post is dedicated to describe the project.
Location: Torino (Italy)
Turin, Italy
Sunday, May 12, 2013
How to defeat the standby circuit in the Seleco BS700 tv chassis
Some time ago my 14" Seleco TV started to exhibit a problem:
exactly 5 minutes (and when I say exactly 5 minutes, I mean exactly 300 seconds) after startup, it turn back to standby (here is a post about that here).
I 've found this problems is related to the processor's NVRAM (C.I.1 - NVM3060) that lost its content.
I managed to reprogam it (using the ponyprog programmer I have written a post about), but the solution wasn't definitive. After a while the NVM3060 lost its content again and the problem raised as before...
So, to get around the problem, I decided to try to defeat the standby circuitry. I've requested help on some repair forum with no success, so I dived a little in the bs700 diagram. I was not able to fully understand how that circuit works, however I was able to realize that grounding Pin 16 of the TV processor should have done the job. And it does! This is what T1 and T2 manage to do depending on the various ORed conditions required to exit the standby mode (press P+ OR press P- OR command from the remote OR ...) . T1 in particular keeps pin 16 down to ground through R14 while the TV set is running.
A side effect of this approach is that every 300 seconds the screen flashes black for less than a second. This is due to the processor still trying to turn the tv in standby as the default sleep time times out; it's a command internally executed by the processor I cannot do anything about.
So the modification more than trivial as ground jumper is very close to R14. Just have a look at the following pics to see how I've made the connection.
Good luck with your bs700!
Emanuele.
exactly 5 minutes (and when I say exactly 5 minutes, I mean exactly 300 seconds) after startup, it turn back to standby (here is a post about that here).
I 've found this problems is related to the processor's NVRAM (C.I.1 - NVM3060) that lost its content.
I managed to reprogam it (using the ponyprog programmer I have written a post about), but the solution wasn't definitive. After a while the NVM3060 lost its content again and the problem raised as before...
So, to get around the problem, I decided to try to defeat the standby circuitry. I've requested help on some repair forum with no success, so I dived a little in the bs700 diagram. I was not able to fully understand how that circuit works, however I was able to realize that grounding Pin 16 of the TV processor should have done the job. And it does! This is what T1 and T2 manage to do depending on the various ORed conditions required to exit the standby mode (press P+ OR press P- OR command from the remote OR ...) . T1 in particular keeps pin 16 down to ground through R14 while the TV set is running.
A side effect of this approach is that every 300 seconds the screen flashes black for less than a second. This is due to the processor still trying to turn the tv in standby as the default sleep time times out; it's a command internally executed by the processor I cannot do anything about.
So the modification more than trivial as ground jumper is very close to R14. Just have a look at the following pics to see how I've made the connection.
Good luck with your bs700!
Emanuele.
Before |
After |
A cd player error's dance (aka, how to monitor read errors in a CD player with TDA1541 chipset)
NOTE: THIS POST IS A COMMENT TO WHAT YOU CAN WATCH IN THE ATTACHED VIDEO.
Today I wanted to investigate the behavior of the error signal in one of my Philips CD-670 players.
The error signal is coming out from the decoder chip (SAA7210) to advise the following interpolation &digital filter chip (SAA7220) that errors have occurred while reading samples out from the playing cd.
Friday, March 1, 2013
Again on Philips CD670 and the CDM/2 cd transport
During the last year BOTH my Philips CD670 cd players have began to express annoying symptoms:
- randomly unable to read the TOC even with CDs that yesterday successfully played many times;
- randomly stopping playing with "error" message on the display (mainly when playing your preferred piece of music of your preferred cd...), even with CDs that yesterday played ok many hours;
- being very very very sensitive to mechanical shocks (I was attempted to use them as earthquake warning tools ...). Even a strong "bass" tune could lead to the "error" condition as well as my son just walking by in front of it - the cat didn't have the same effect, however...).
Post TAGS:
CDM2,
Philips CD670,
TDA1541
Location: Torino (Italy)
Turin, Italy
Monday, January 30, 2012
A ponyprog EEPROM programmer implementation
To fix a tv set I had to build a EEPROM programmer for NVM3060 EEPROMs.
At first I believed it was possible to use my i2c EEPROM programmer I use for 24CXX memories, but I have soon realized that NVM memories follow a different signaling standard called IM-BUS.
So I implemented the motherboard and the daughter board for NVM memories.
The motherborad was simplified as I considered it a little redundant. In fact the external power supply circuitry (Q4,Q6) is, in my honest opinion, not needed and can be replaced by a simple jumper.
Aside is my modification manually depicted on the original diagram. JP2 is in fact used to switch between the external power supply and the internal power recovered from the RS232 by mean of D1, D2, D3.
I tested it in both configurations. Trying to deal with an NVM chip using the internally recovered power supply leads to read/write errors because the NVM is pulling too much current. Switching to the external supply things went fine with no problem.
Have you found this information useful? Please support my effort. Thank you!