StarTiny is cool, in my opinion, partly because it features a hand-crafted paper star housing. The paper gives the whole item a certain crafty feel that speaks of art and care. And I appreciate care in products.
Photos of the Paper Patterns
-
-
StarTiny Papers, ready for gluing
-
-
StarTiny purple point, inside
-
-
StarTiny purple point, up close
-
-
StarTiny points, ready for gluing
-
-
StarTiny Purple, Red, and Turquoise
-
-
StarTiny Red, up close
-
-
StarTiny Purple, up close
-
-
StarTiny Papers, ready for final PCB insertion
I can’t wait to get the PCBs to bring these colors to life!
The Stardweeny finally has its own PCB! The first version was based on a Solarbotics Ardweeny on a perfboard, but I wanted to lower the cost and especially the manufacturing complexity.
Enter the StarTiny
I made the new StarTiny PCB with gEDA. It is based on the ATtiny13 microcontroller from Atmel, as the name suggests. The tiny13 has just enough storage space to hold the necessary firmware for the star. It comes in a compact 8-SOIC package that fits neatly between the five LEDs on the board.
The Order
I ordered 10 of the StarTiny PCBs through BatchPCB, a Sparkfun-related frontend to the Chinese Gold Phoenix PCB fab. The boards are only 1.25″ to a side, so the cost comes out to only $3.95 per board. There’s a $10 per-order tooling fee (for panelization and human design verification) and a $5 shipping fee.

StarTiny v1 Overview
The Files
As you may have read in the first post on the Stardweeny, I’m sharing the design files freely. I want anyone to be able to share in the simple joy of soothing, blinky LEDs! The effect is really quite charming. Also, if you want, you can order your own PCB directly via BatchPCB.
Please note: I have not yet received these boards from the manufacturer, so they aren’t tested. As usual, no guarantees!

StarTiny v1 by Travis Geis is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at www.zenlogic.org.
Permissions beyond the scope of this license may be available at http://www.zenlogic.org/.

Testing the ATtiny13 with one LED
This year for the holidays I created a little dynamic ornament with five channels of independent LED light. The prototype, which had to be finished in a matter of days, used an Ardweeny board from Solarbotics. The Ardweeny is based on the ATmega328, a great chip with more than five hardware channels for PWM (pulse-width modulation). While I love the ATmega chips, they get a bit pricey at $5 apiece just to drive some LEDs.
I was shopping on Digi-Key for alternatives and decided to try a couple of ATtiny13 microcontrollers. The ATtiny13 is a small, low-power AVR with the standard 8-bit core size, and conveniently comes with a 9.6-MHz internal RC oscillator. Because the ATtiny has an internal oscillator, I knew I could keep my hardware very minimal and thus very small, a requirement for the small paper ornament I was hoping to build.
The problem is that the ATtiny13 has only one PWM output. If I used only its hardware functionality, I would get one channel of control, where I needed five. To solution is to implement a simple software PWM. In this post I describe my process of getting software PWM (and embedded C programming in general) working on the ATtiny13.
Read more on “Software PWM on the ATtiny13″ »
I’m working right now on a more portable ATX power supply, hopefully one that can survive a rough plane ride in the cargo hold without any special attention. I’d like to inset the terminals and switch, to keep them out of harm’s way and to allow me to stack stuff on the supply.
I think while I’m at it I will add a LM317 variable regulator and an Adafruit Panel Volt Meter to keep an eye on the voltage of the regulator. I could even add a current-sensing resistor, though I probably won’t need it.
I started off intending to roll my own supply, but it turns out they don’t get much smaller than the ATXs for what those do. I like having all the separate power lines, and the overcurrent protection is priceless.
I’ve been working on a new version of the Starduino lamp. The first one, though it worked, took a long time to make. It had 50 individually wire-wrapped LEDs held at a fixed spacing with drinking straws and hot glue.
The new version will use thin PCBs holding surface-mount LEDs in position. Each PCB, like each drinking straw, will hold 5 LEDs, which need to be individually addressable. I found some nice flexible FR4 copper-clad on eBay, and have been working on toner-transfer etching these boards. My initial attempts failed because the toner did not fully stick, but I think I may have a fix: I have increased the amount of toner to be transferred by selecting the blank space in GIMP and shrinking the selection a bit, then filling it with black. This filler helps to balance the toner distribution on the boards, allowing the paper to adhere evenly and not peel back (which ruins the transfer).
Below are the panelized new boards, intended to work on 9″ by 6″ PCB.

Panelized Starduino2 PCBs ready for transfer.
Well the BeeCNC is coming along. I have it responding to gcode commands from my laptop and it seems to move alright. There is one problem: the Dremel tool is quite heavy for this scale of machine, and its weight leans the Z-axis gantry forward. This causes the gantry to “rack” on its guide rods, meaning it gets jammed at a non-upright angle, and then the motor can’t lift it.
While parts of the problem would be alleviated if I had tighter-fitting bushings for the Z axis, I think the main concern is weight. I am going to try adding some gentle tension springs to the gantry, to passively take weight off the lead screw and motor. Hopefully this will help keep everything moving smoothly.
My brother and I are working on converting his old Diamondback mountain bike to a hybrid human/electric bicycle. We picked up some stuff from Sick Bike Parts and TNC Scooters. I thought I would post some notes on the conversion project as the process can be far from intuitive.
First, I thought I would make a note for posterity that the 24V Throttle with LED Indicator does not actually require a controller with power-status output. The throttle has four wires, and acts simply as a potentiometer. The wires are as follows:
| Throttle Wire |
Controller Wire |
Description |
| Red |
Red* |
+5V Power (to potentiometer) |
| Black |
Black or Yellow* |
Ground (for potentiometer and LEDs) |
| Green |
Green, Blue, or White* |
Throttle Signal Output (0-5V; potentiometer wiper) |
| Yellow |
Orange or Yellow |
Power Status. The included slip says this wire can be ignored if using a three-wire controller. However, this line simply uses a voltage directly from the battery to light a resistor divider with LEDs. Thus, you can connect the power indicator LEDs directly to the battery output, and the throttle will show the battery charge. You may want to run this through our main switch so the lights aren’t always on. |
*Note: On the Yi-Yun controller we bought, these three cables for the throttle control are labeled “dérailleur.” I can only assume it’s a translation error and that the manufacturer intended to say “throttle.”
The BeeCNC uses the salvaged 7V EPSON steppers, which draw about 0.7A each. I found a datasheet on wrobots.To power everything correctly, considering the unusual 7V requirement of the motors, I designed a little power supply board myself.

BeeCNC Power Board, Solder Side

BeeCNC Power Board, Component Side

BeeCNC Power Board Assembled

BeeCNC Power Board Working!
To power each motor at its ideal voltage, each gets its own LM317 adjustable voltage regulator on the power board. The power board also includes a 7805 regulator for the 5V logic. It has a power switch, a big 6A diode for reverse-polarity protection, and a 5A fuse to prevent fires. Discounting the router itself (which plugs directly into the wall), the BeeCNC shouldn’t draw more than about 2.2A.
I decided to keep the power board separate from the logic to avoid complications in debugging and to keep the modularity of the design. Using two boards also frees me from making a whole new board, when the logic board I have seems to work fine so far.
The Schematic

BeeCNC Power Schematic, Version 1
The Layout

BeeCNC Power Board, Component Side

BeeCNC Power Board, Solder Side

BeeCNC Power Board, Silkscreen
The Files
BeeCNC Power Board Files (v1)
BeeCNC Power Board Files (v1)
A salvaged EPSON motor from an old printer serves to drive one of the BeeCNC axes. Actually, I found three of them
Unfortunately, the motors have short, non-standard bolts holding them to a custom steel plate with very small threaded holes for mounting. I needed something else to mount the motors, so I set out to make some new mounting plates.
A trip to Home Depot found some narrow and flat sheet Aluminium just wide enough to hold the motor bolts.

A NEMA17 Stepper from an old EPSON printer
1: Field Measurements
First, I had to get the measurements. The motor bolts were about 1-1/4″ apart and were basically 4-40 size. I took off the nuts and found some nice rubber washers under there.

Taking the stock plate off
2: Saving some parts
I liked those little rubber washers, so I decided to keep them in my design. They will make the machine quieter and hold the plate tight against the nuts.

Salvaging the washers
The washers have little brass bushings that popped out easily.

A custom fabbed Aluminium plate
3: Fabbing the replacements
I cut some of the new Aluminium to length and drilled four bolt holes, a large center axle/hub hole, and two easier mounting holes off to the sides. The Aluminium was very easy to drill cleanly with a metal bit, but I didn’t have one large enough for the center hole. With some assistance holding the workpiece, I managed to use a Speedbor wood bit to carve out that large center hole.
4: Reassembly
With four plates made (one for each axis, and one extra) I bolted the motors back together with the rubber washers on each bolt behind the plate. Beautiful!

The new plate on the motor
Well,

Uploading with FTDI!

Drilling the Holes

Etching
After five days of pulling my hair out, I’ve gotten the MCU on the BeeCNC Motherboard to respond to programming commands!
The checklist for possible problems included
- a bad crystal/ the wrong type
- switched input/output lines
- incorrect crystal caps
- bad MCU chip
- RESET line problems
Unfortunately, the list didn’t include the problem: a short on one of the crystal pins to a data line! The data line was not in use and so the crystal could not oscillate at all: the microcontroller was stuck on cycle #1 after programming. One pass with a razor knife fixed the problem right away.
Debugging the circuit forced me to learn a huge amount about breadboarding A
rduino clones. Most of what I learned didn’t help me fix my problem, but I love to learn!
A note to those on Ubuntu who may have trouble uploading sketches to Arduino clones with an FTDI cable: It seems the FTDI drivers on Ubuntu have recently changed, and the new drivers hold RESET low all the time except a brief moment at the start of programming. The problem here is that RESET is supposed to go LOW right before upload then remain HIGH for the duration of the upload. With RESET LOW the whole time, the ATmega can’t hear programming instructions!
The fix is a bit disappointing at the moment for those seeking autoreset: cut the trace (or remove the wire) between the FTDI “DTR” pin and the AVR’s “RESET” pin. Instead of trusting the Arduino IDE to toggle the FTDI’s “DTR” line, just press the reset button on your breadboard (like the one in this tutorial) right after the IDE says “Binary sketch size…”
It may take a few tries, but fiddle with it and eventually you’ll get a good sync with successful upload!