Just a heads up in case anyone else’s Logitech Performance MX starts acting up on the middle mouse button: The switch used is an E-Switch TL3315NF160Q.
Apparently sometimes a drop of hot-glue is enough, but in my case the switch itself was broken. The linked tutorial does give clear instructions on how to reach it though. If you’re handy with a hot-air gun, it’s easily replaced 🙂
A few years ago I built a red-only 32 pixels high, 96 pixels wide LED Matrix, and due to all the positive responses I sought out to do it again the year after with a bigger better matrix. I did some research into affordable solutions, and as usual ended up with Chinese vendors. I got my hands on about 10 32×16 RGB LED panels with a 1cm pixel pitch, and a HUB75 connection, quite similar to the ADAFruit 32×16 matrix. ADAFruit had a bunch of information on them, and there are several other places where they’re being used, so I figured I’d give it a shot. I even bought a Digilent Basys 2 FPGA development board, as these boards are apparently best driven by an FPGA, and I was willing to pick that up.
However, when I started working on it initially, I found out that the Basys 2 did not even have enough memory for 24-bit color, and with my microcontroller of choice at that moment (TI Stellaris) I did not get more than 16-bit color without flickering. While the panels looked fun, with 16-bit color everything still looked very basic, and very limited. Definitely not the neat full-color panels I had in mind. I figured I’d either have to shell out for a much more expensive FPGA, or buy one of the purpose-built LED drivers from china, both of which were out of my budget for this project. The panels disappeared in a box somewhere, only to be stumbled upon at least 2 year later.
Continue reading 96×48 full-color LED Matrix
In the quest for the ideal XBMC set-top box, I’ve bought an ODROID-U2. It’s a small devboard with an Exynos 4412 quad-core Cortex-A9 processor. Pretty much the same chipset as the Samsung Galaxy S3 or the Note 2, which should be more than enough to power XBMC I figured. (Note: At this point it doesn’t run XBMC flawless yet, the menus work great and much faster than on the RPi or the Pivos XIOS DS, 720p content seems to work fine, but 1080 still stutters a bit. However, that’ll supposedly get fixed once XBMC upgrades to multi-core ffmpeg or the video decoder will be implemented)
While the ODROID will boot from MicroSD perfectly, there’s another option called eMMC that is supposedly much faster. If you buy it from them, it’ll include a small converter to microSD so you can flash it with a computer. However, as it turns out this converter is absolute garbage. it’s too big to fit into a regular uSD-SD converter, and even after I filed it down to the appropriate size, it still didn’t work.
So I had this nice box, with Android 4.0 pre-installed, but the one method to upgrade was broken.
Luckily, there’s another way to upgrade by booting to Ubuntu from a microSD card, and access the eMMC module on-board from there. I’ll detail how I did it here.
For the past couple of months I’ve been running XBMC on a Windows 7 installation. Worked pretty much instantly after installing, but the boot times were horrible, and every now and then windows updates would nag. When I bought the box I briefly tried XBMCBuntu, but concluded that it was too much tinkering to get it working and gave up.
However, today I set out to give OpenELEC a try. Almost everything worked out of the box, except for audio over HDMI. I’ve tried most of the things on the wiki, but couldn’t get it to work in both the video as well as the XBMC menu. Most people seem to be satisfied with just the video, often calling the XBMC menu sounds “obnoxious”, but I’m rather fond of those, so I set out to fix it.
Here’s a quick guide on what I did.
While browsing through DX.com’s new arrivals section, I stumbled upon this package:
Seeing as I still had a bet with a friend to, at some point in our lives, do a real-life Robot Wars, I figured I’d give it a shot. It just got in a few days ago, so I figured I’d write a quick review. Continue reading Dx.com’s Multi-Function 4WD Arduino Robot Car Kit
About a year ago, I ordered a few WS2801-type addressable RGB LED strips, and have been very happy with them since. Today I was curious how much they cost nowadays, and if anything new was out in China. It appears that a lot has changed since the last time I looked. Back then there were a few different chips, but the WS2801 was the only one doing 8-bit PWM, now there’s even a chip doing 12-bit PWM! However, it also appears that the protocol that was used back then (basic two-wire SPI) has been replaced by single-wire protocols requiring precise timing.
Seeing as there’s just too much choice and the information is scattered all over the place, I figured I’d do a summary of all I could find. Unfortunately I haven’t been able to actually get engineering samples of any of these strips, but I’m hoping that I can still compile a summary using only the datasheets. So here goes in alphabetical order! Continue reading Digital Addressable LED-strips
As promised in my previous post, here’s more information on the JY-MCU 3208 Lattice Clock board. If you’re missing anything, or would like me to clarify or check something, please do feel free to leave a comment 🙂 Continue reading More information on the JY-MCU 3208
During a recent impulse-buy at DealExtreme I added the following two items to my cart:
- A 32×8 LED Clock thingie (JY-MCU 3208 Lattice Clock)
http://dx.com/p/jy-mcu-3208-lattice-clock-ht1632c-driver-with-mcu-support-secondary-development-104306?item=1 (SKU 104306)
- A 16-digit 8-segment LED display (JY-MCU JY-LM1640)
http://dx.com/p/jy-mcu-16x-digital-tube-yellow-led-module-104311?item=3 (SKU 104311)
I intended to just play around with it, with no particular purpose in mind. However, I’ve recently been asked to bake up a clock-like display, and figured I could use these two for that purpose. This post will be the first in a series detailing what I’m doing with it, and how I’ve done so. The first post will focus on what the boards contain, where to get information, and a small summary of some of my plans.
JY-MCU 3208 Lattice Clock summary
First the JY-MCU 3208 Lattice Clock. Basically it’s just a little development board that comes out of the box with:
- An ATMega8L clocked at 1MHz, but able to be clocked to 2MHz, 4MHz, or 8MHz
- An external crystal of 32.768KHz intended for timekeeping, wired to TOSC1 (PB6) and TOSC2 (PB7)
- 4 8×8 LED-arrays with red LEDs. Apparently it also houses green LEDS, but those have not been wired. You could, however, reuse these panels in a different project and use green too.
- A HT1632C-chip to drive those LED arrays.
- An AVR 10-pin ISP header that’ll plug right into most AVR-programmers, and features the TX and RX pins brought out to two of the ground pins.
- A cylindrical powerjack-receptacle, with what appears to be an outside diameter of 5.5mm, 9.5m length, and an unknown inside diameter. All plugs I had of 5.5mm OD seemed to fit, so I’m not sure. (Maybe someone with an advanced caliper can confirm this?)
Apart from that it comes with solder-pads for a lot more components that you can solder on manually:
- Two different Real-time clock chip designs, complete with backup battery (either a Maxim DS1302, or an RX-8325NB + RX-8025SA, both with a CR927 battery or battery holder)
- A digital thermometer (Maxim 18B20)
- A speaker
- An LED wired in such a way that it can be used as a light sensor
- A Mini-USB plug wired properly to be used with firmware libraries like V-USB
- An IR-receiver
The factory firmware is basically a clock, but it’s highly inaccurate, and loses it’s time whenever it loses power. Even though it’s a nice demo, I think the real power of this board comes from the fact that you can write your own firmware and the PCB contains traces and solder-pads for virtually anything you’d want to make with a 32×8 display like this. Out of the box you could use it to receive data from the UART TX/RX pins and put that on the screen, which would make a nice display for something like an arduino, if you add extra components you could make a clock, a USB display, thermometer, or anything else you can come up with that uses a combination of the things listed above.
JY-MCU LM1640 summary
This one is a bit simpler. Out of the box, it’s just 4 4-digit 8-segment displays with a TM1640 chip to drive them. However, here too there’s room for more!
There’s solder-pads available for something like an ATTiny25/45/85 chip, with the option of removing two resistors so the TM1640 is connected to 2 output pins of the ATTiny, and the normal DIN and SCLK inputs will then wire to the ATTiny’s DI/DO pins, allowing for something like serial communication.
On top of that it allows you to place two push buttons directly wired to the ATTiny in case you’d like to run it standalone.
Stand-alone it’s nice for a display on any microcontroller/arduino project. With the ATTiny, you can write up an easier protocol, or even have it running as a standalone display.
My current plan is to create a clock, with the LM1640 used as an extra display to show, for example, the year, month, and day. I also plan to add an USB option so that you can synchronize the time with a computer, and possibly use the displays directly from the PC.
For this I’ll be adding the DS1302 RTC chip, and adding all the needed components for a USB connection.
The next post will feature all the datasheets and other manuals I can find, and will detail how I’d like to wire things up, what components I’ll be needing 🙂
I bought a Raspberry Pi to work together with my rooms moodlight. The current system uses an FTDI USB to RS485 converter cable with a full-blown linux PC pushing 1Mbps of data over that to drive the animations. I intended to replace that system with a Raspberry, seeing as it already has a UART on-board and would only need a small RS485 chip to drive the bus.
Unfortunately, out of the box the Raspberrys UART can only push 115200baud, and it spits out a shitload of debug data on the serial lines.
Here’s what I did to allow it to use the UART for other things, and to drive the UART at 1Mbps 🙂
The limiting factor on the UART speed is that UART Clock. It only allows baudrates of UART_CLK/16, and the clock is set to 3Mhz by default, limiting it to 187500baud. To drive 1Mbps, we need a UART-clock of at least 16Mhz. To do this we need to:
- Set configuration parameters in /boot/config.txt
- Update /boot/start.elf to the latest version. (The version shipped with Debian doesn’t support the init_uart_clock option)
- Compile a kernel that is aware of the new uart_clock.
Line that needs changing: https://github.com/raspberrypi/linux/blob/rpi-patches/arch/arm/mach-bcm2708/bcm2708.c#L184
This should then allow you to set the baudrate higher, to test run ‘sudo stty -F /dev/ttyAMA0 1000000’. If that runs without problems, it’s probably OK. You can test some more with ‘sudo bash’, and then ‘echo BOO > /dev/ttyAMA0’ and see if an attached FTDI device picks it up at 1Mbps.
Next up is making sure nothing else is using the serial line.
- Edit /boot/cmdline.txt and remove all options mentioning ttyAMA0.
- Edit /etc/inittab and comment out any lines mentioning ttyAMA0, especially the getty one. (source: http://baldwisdom.com/preparing-for-a-la-mode-raspberry-pi-and-arduino/)
Done! Now all that’s left is writing code to actually push something over that line and wire up a small rs485 chip 🙂