Posts with «general» label

hidapitester – Command-line program to exercise HIDAPI

To help diagnose USB HID communication and to test out updates to hidapi, I wrote hidapitester. It is a command-line program that allows you to exercise just about every aspect of hidapi. Pre-built binaries for MacOS, Windows, and Linux Ubuntu x64. I’ve found it very useful. You can use it to: Scan for connected HID [...]
Todbot 14 Jun 05:30

Oberheim Matrix 6r firmware update!

I upgraded the firmware on my beloved-but-long-unused 1986 Oberheim Matrix 6r! These synths are the royalty of analog fatness. I love their sound. This is the result I was looking for: It’s remarkably clean inside for a machine made in 1986. I acquired it used in the early 90s. Just look at the bank of [...]
Todbot 04 Jun 20:47

HIDPyToy – GUI to test USB HID devices

Here is HIDPyToy. It’s a small app written in PyQt using the hid Python package to talk to USB HID devices (like Teensy RawHID or blink(1) USB RGB LEDs). Pre-build binaries are available for MacOS and Windows. HIDPyToy allows you to exercise pretty much the entire hidapi library from Python. You can: List for all [...]
Todbot 04 Jun 05:26

ILOVELAMP: my Supplyframe DesignLab residency project

For four months this year I had a residency at the Supplyframe DesignLab.  I worked on “ILOVELAMP“, a project experimenting with creating lamps with configurable light emitting surfaces using addressable LED strips. Check out the project:
Todbot 28 Jul 18:55

Replacing the battery in a Macbook Pro Retina (late 2013)

I really like the generation previous to the current Macbook Pros. You know the ones. They had all the useful ports like USB-A, HDMI, an SD Card slot, and MagSafe!  And it had a long-lived battery in a thin case. That is my Macbook Pro. And it’s wonderful. But now 3.5 years on, the once [...]
Todbot 09 Jul 03:31

Learning Fusion 360 via 3d-printed iPhone tripod mounts

Here’s how I taught myself Fusion360 by updating a 3d-printable iPhone tripod mount I found on Thingiverse. Several years ago, I needed a tripod mount for my iPhone, so like anyone with a 3d printer at the time, I headed to Thingiverse and found this awesome tripod mount by haasebert. It has some very clever [...]
Todbot 07 Feb 23:09

From the mailbox

Alex managed to port the Wise Clock 4 code to Arduino Mega2560 (shared here, thanks Alex!). He made this video demonstrating it in action:

Today I have a great day! I did it! I soldered a development board for my Mega2560. A little corrected code and ... voila!  Wiring diagram:
  • rtc sqw (1hz) - pin 2
  • menu key - pin 3
  • set key - pin 4
  • plus key - pin 5
  • speaker - pin 6
  • speaker - pin 7
  • HT1632_WRCLK - pin 10
  • HT1632_CS - pin 11
  • HT1632_DATA - pin 12
  • HT1632_CLK - pin 13
  • rtc sda - pin 20
  • rtc scl - pin 21
(SD While not tested, but I think it works)
  • sd miso - pin 50
  • sd mosi - pin 51
  • sd sck - pin 52
  • sd cs - pin 53

Nelson built his own hand-wired version of WiFiChron and it looks awesome:

MikeM sent in (thanks Mike!) his latest WiFiChron code (available here).
The enclosed zip file compiles under Arduino 1.6.8, though it generates a warning I haven't figured out how to eliminate.
Ray ran into a problem with data overruns. When data in an RSS feed was split between multiple packets, sometimes the last few bytes of a packet were dropped from the RSS buffer. I didn't see that problem with my clock when I was developing the code, nor did I see it on the WiseClock4. I've re-built the RSS state machine to be more CPU efficient, and now the packets are processed without drops. We probably don't need to change the RSS code on the WiseClock4 as it runs at 16 MHz and not 8 MHz like the WiFiChron.
I also changed the PROGMEM statements to fit the 1.6.8 standard.
And finally, I got the PCBs for the 1284-equipped versions of WiFiChron and bGeigie nano.
For both I relied on internal (software-driven) pull-ups (basically I eliminated the pull-up resistors), without checking first if that would work. Unfortunately, the current sanguino library does not implement correctly the function pinMode(x, INPUT_PULLUP). So I had to resort to resistors solder on the back of the board. That, plus missing a (necessary) decoupling capacitor, plus also missing some connections on the bGeigie board, made for a "fun-filled", but in the end successful, testing. More on these in a future post.

LED driver chips

After looking at the many options for driving LED displays (5x7/8x8 matrix, 7/14/16/25 segment, common anode/cathode, single/bi-color/RGB), I put together this list of commonly used LED driver chips, to have a better picture of possible combinations, and use as reference for future projects.

The bottom 5 rows are not actually LED drivers, just substitutes (require current limiting resistors).

Some of the driver chips (e.g. "8x8" in the "channels" column) provide internal multiplexing, being designed specifically for driving array of LEDs. The others, where "channels" is just one number, would require extra circuitry (e.g. transistors) and logic (micro controller code) for multiplexing.

The "CA" column indicates "common anode", "CC" stands for common cathode.

There seem to be more options for driving common anode LED displays, probably because sinking current (by the chips' LED outputs) allows for higher currents and also for using a separate power source (usually higher voltage) for the LEDs.

Wise time with Arduino 08 Jul 17:27
general  review  

Tod speaking about blink(1) at Hackaday 10th

Back in October, I spoke at the Hackaday 10th anniversary event. I spoke about blink(1), Kickstarter, and some of the fun issues we had getting the product out. They were nice enough to record it and put it on Youtube. Video below.
Todbot 27 Feb 20:02

Edidoom: Intel Edison Running Doom

Proving that the Intel Edison is really a full Pentium-class PC, Lutz has successfully ported Doom to the tiny board. For those who aren’t quite as old as I am and are unfamiliar with the classic title, Doom literally blew away gamers in 1993 with a combination of fast paced […]

Read more on MAKE

MAKE » Arduino 09 Jan 20:01