I2C
Ducati 749/999 Tail Light
I finished this project a while ago, but never documented it. This is a taillight I made for my 749 before I sold it. I currently have a 999 so maybe I will make another one someday, but the 999 rarely changes out of it’s track/race clothes.
I was doing a lot of street riding when I made this, so I wanted something with better visibility than the (IMO) poor aftermarket replacement taillights. Specifically I was wanting to add a few high brightness pulses when the brake lights were turned on, but with a high enough frequency it would barely be noticeable. It catches your attention but isn’t really that obvious if you weren’t looking right at it. I’ve noticed recently that some fire trucks do this.
I’ve also been interested in a tail light with a light sensor so that the brightness can be ramped up during day time. Motorcycles need all the visibility they can get, but if the tail light gets too bright it will have the opposite effect at night and reduce visibility for people behind you. › Continue reading
M17x inverter brightness fix
After I killed my original motherboard modifying stuff in my 6970m quest, the brightness of my LCD was stuck at low with both the new R1 and R2 motherboards. The function keys couldn’t adjust brightness and neither could windows. Here’s how I fixed it. This is probably only valid for a CCFL backlit display.
The inverter that drives the fluorescent lamps in my display is based on a MAX8759. This chip has an SMBus interface as well as an ambient light sensor interface and a PWM input. The motherboard uses the SMBus interface to control the inverter. You can directly write values to a brightness register, from 0x00 to 0xFF for minimum to maximum brightness. The function keys send incrementally smaller or larger values to the controller. I pulled out my logic analyzer, mbed, and realterm to watch the bus communication and communicate with the inverter controller.
The communication from the EC to the inverter controller is correct, and you can read the brightness register and see the values change based on the function keys. However the brightness continues to stay low. You can also read the fault register, but no faults were present in my case.
What I figured out was the controller by default uses a mode called “SMBus with DPST”, which takes the SMBus brightness value and multiplies it by the PWM duty cycle. This apparently allows another interface to use the PWM input and dim the display without needing to access the bus. The problem was the PWM duty cycle from the EC was 0%, so the controller kept the brightness at 0 regardless of the SMBus setting. › Continue reading
Flash a monitor’s EDID with an mbed and RealTerm
If you’ve ever setup ATI’s Eyefinity with bezel correction or connected your computer to a TV you know what this is about. Bad EDIDs can be missing supported resolutions, or report an incorrect screen size. In my case bad EDIDs prevented me from enabling bezel correction on my Eyefinity three monitor setup. This is because ATI coded their Catalyst drivers to read the EDID data directly from the monitors instead of the windows registry, where bad data can be fixed more readily with an EDID_OVERRIDE key.

EDID is Extended Display Identification Data. It’s what makes your monitor “Plug and Play”. When you plug a monitor into your computer, the monitor communicates data about itself to the computer over the DDC bus, which is an I2C bus. For a DVI connection, the I2C data and clock lines are on pins 6 & 7. Usually you would flash your monitor’s EDID while it’s hooked up to your PC with a program like Powerstrip, but you have to buy the registered version of powerstrip to have that functionality. Additionally, revision 3 of the EDID specification requires the EDID to be write-protected. That means to flash the EDID with Powerstrip you need to figure out the manufacturer’s sequence for temporarily unlocking the EEPROM. Something like turning the brightness and contrast to zero, then power cycling while holding the menu button, etc. I didn’t feel like messing around with that so I just took the monitor apart. › Continue reading
Other Stuff
- 0.008″ PCB trace isolation on my CNC
- 1_Wire_Driver
- 12 Volts on the trailer without a truck
- 330 Watt power supply for Alienware M17x
- 330W power supply for M17x update
- 6970m power issues
- 6970m vBIOS ISP / Pm25LD010
- 6CY7 dual triode valve amplifier
- Acrylic polishing and scratch removal
- Air quality sensor (TVOC and eqCO2)
- Alienware AlienFX repair
- Alienware M17x BIOS / EC corrupted flash fix
- Atmel’s new micro with integrated boost converter
- Automotive rear fill “surround sound” with Boss DD-3
- Breathe life into your Xoom
- BT5 USB flash drive persistent install
- Build a 9-digit Pulse Counter for under $20
- Build a spot welder from a battery charger
- Canon A70 CCD replacement
- Canon DSLR shutter release from any switch contact
- Cascade process heater
- CNC version 2.0
- Continuous vs. batch water changes
- Diesel, sulfur, NOx, and EGR
- Digital RPM indicator
- DIY Router table
- Ducati 749/999 Tail Light
- Electronic choke
- ELM327 emulator
- Fast idle mod
- Fix your Keurig
- Fix your Keurig – again
- Flash a monitor’s EDID with an mbed and RealTerm
- Flatbed scanner panoramic camera
- Forza 3 multiscreen setup
- GSXR Instruments C Source
- Horizont: a true panoramic camera
- How much electric current does a truck really use?
- Instruments for the GSXR
- LED backlit desk sign
- Light pipe tail light for the GSXR
- M17x 6990m / 6970m overheating
- M17x inverter brightness fix
- MAX4173 Current sense amplifier
- mbed 1-wire EPROM driver (DS2502)
- MEMS Accelerometers
- Modifying a digital camera for infrared (IR) photography
- Moisture Meter for Plants
- My homebuilt CNC machine
- Netgear WGR614v7
- Netgear wireless router repair
- PAR / Spectrum analyzer
- PCB layouts and schematics for my CNC
- PIC32 Ethernet Starter Kit and MPLAB X
- Piezo pump
- Pressure mapping with DIY foam load cells
- SMS remote control
- Sony VAIO FW series laptop battery hack
- SPI programmer for SST25VF016B
- Spring tester / weight scale
- Spring tester C source
- Strain-Guage based Pressure Sensor
- Textile needle loom
- Trailer turn signal update
- Training halter fixes pulling back, lunging problems
- Turn signals for a trailer
- Upgrade M17x R1 to R2 motherboard
- Xbox 360 red lights issue
Recent Posts
Archives
- May 2019 (2)
- April 2017 (3)
- October 2015 (1)
- May 2015 (1)
- March 2014 (2)
- December 2013 (1)
- July 2013 (1)
- November 2012 (1)
- October 2012 (4)
- September 2012 (1)
- August 2012 (3)
- June 2012 (1)
- March 2012 (1)
- February 2012 (1)
- January 2012 (1)
- October 2011 (3)
- July 2011 (1)
- June 2011 (3)
- May 2011 (2)
- April 2011 (1)
- December 2010 (1)
- August 2010 (1)
- July 2010 (3)
- April 2010 (2)
- March 2010 (2)
- January 2010 (2)
- December 2009 (2)
- October 2009 (2)
- September 2009 (1)
- August 2009 (15)

