This is the next step in my mission to make my car function 7 years newer and feel like a jet cockpit.
(click here if the above video isn’t loading)
I wanted a HUD, Heads Up Display to my car. The main purpose is to let me keep my eyes on the road and still be aware of my speed without looking down, hence “heads up”. This idea has been used in fighter jets for decades now.
I do not like any of the other ones on the market today, they all try to do “too much”. I wanted something more simple and elegant.
My design is a simple RGB capable individually controllable LED strip that reflect off my windshield.
I used the “DotStar” from Adafruit Industries, which uses APA102 LEDs. The brain is a Teensy 3.2, which is connected to my car’s CAN bus via a OBD-II connector (the diagnostic port that you can read the engine computer from).
It is programmed to have three different modes: voltmeter, tachometer, and speedometer. The mode switching is “context aware”: When the car is moving, the mode changes to speedometer. If I rev the engine Continue reading
For various reasons, I decided to try writing a SD card bootloader for my Ultimaker2.
The project is open source and on my GitHub here.
My goal was to install this new bootloader without having physical access to the circuitry. Thus I cannot use a ISP tool and must be done through the bootloader that is already present on the Ultimaker2. The only way to do this is to partition off a portion of application memory region for a secondary bootloader that executes after the original bootloader. But the ATmega2560 has a restriction that prevents anything in the application memory region from modifying the flash memory at all. Overcoming this restriction is what this hack is all about, continue reading if you are interested in learning more.
I’m working on a XMEGA-A3BU Xplained board, along with Arduino IDE. (normally I’d stay away from anything related to Arduino but this time I’m forced). I connecting a FT232 for debugging is a pain so I modified LUFA and turned it into an Arduino library, so I can use print and println for debugging.