Taking Arduino to the next level with avr-gcc: part 3.5

Since I wrote my last post on this, a few minor things have come to my attention or changed:

  • Dane pointed out that the digital pins of the Arduino output a maximum of 40mA of current. Each LED can probably handle 40mA of current itself. In short, that means that right now, we’re only getting about 1/6th of the potential brightness. (Perhaps more than that, since the voltage-brightness response is not linear, but still – less than we could be getting.)

    My ideas for dealing with this are:

    1. Pull current from more PWM pins. The most straightforward, though it puts the most load on the Arduino. At this point it looks like I have enough pins to do this since I’m multiplexing the display.
    2. External power supply, emulating PWM with some kind of external switching IC. I really don’t like this because if the software doesn’t do PWM correctly, there could be several amps going into the LEDs, which would have no good consequence. It also involves buying more hardware, which, well, yeah.
    3. Something else clever commenters come up with…
  • I moved from a design using several smaller breadboards (“modules”) to one larger breadboard. I’ll draw a line visually between the two next time I’m at the workbench. Functionally, it should make no difference if you don’t want to transfer, the wiring just might get a bit unwieldy.
  • I messed up the fuse and bootloader on my Arduino Nano. I may have to buy a reprogrammer to fix that. In the mean time, I’ll be using the Diecimila like I have been rather than trying to breadboard the whole thing. Someday, perhaps. In the mean time, that makes me a bit nervous to push binaries to hardware, which means…
  • Next time we will cover how to use to toolchain to manage and compile a C-based AVR project, particularly in Xcode. We won’t be getting to avrdude just yet – it’s one thing when I brick my own hardware, it’s another thing when I tell someone how to brick theirs. 🙂

a+,
kmo