Due to the impacts of the coronavirus outbreak, we are experiencing longer than normal lead times on certain products. We encourage back-ordering out-of-stock items to receive them as soon as possible.


Member Since: January 31, 2012

Country: United States

  • Content to be at the "happy bucket" point now (http://cal-eng.com), but this article touches on two different paradigms; one being the incremental business growth, the other the weird quasi-random Kickstarter success (or lack thereof).

    My plan and execution so far has been quite deliberate (and fairly slow), here's a few observations:

    • Why do you want to do it?

      -- Money? Stop now, rethink your plan, and get a real job first!

      -- Because you love to design? Good! That's critical if you want to sustain momentum.

    • How will you do it?

      -- Get a second mortgage and quit your day job? Nope, -really- bad idea!

      -- Spend a bit out of pocket and build on-demand? Yup, in the early going, minimize all costs where practical.

    • Where to start?

      -- Design, but try to add value somehow. You simply can't compete with China building existing open source designs.

      -- IP (particularly trademarks) are critical if you intend on growing an on-line business. You domain name is absolutely everything, don't leave it 'till it's too late, also be prepared for challenges (been there, done that!), and if forced, a complete re-naming of your venture might be needed, right off the bat!

      -- Keep inventories to a bare minimum, and buy commonly-used components outside of normal channels at huge discounts. If you have a way to cut PCB's, ganging distinct circuits on one PBC cuts per-units costs dramatically, particularly for prototype development. (you WILL make PCB design mistakes!) Finished product inventory is a really bad thing, unless you are incredibly confident about future sales, and that assumes that you're happy with the design as it is.

    • How to grow?

      -- Patience, young Jedi, a site that offers lots of good information and compelling products will slowly gain momentum on it's own. (nowhere near there with my site yet!)

      -- Don't sit on a small handful of products. Keep innovating, even if it means forcing some of your existing designs into obsolescence. PCB's are stupid-cheap, don't get obsessive about the need to sell all your existing stock of one particular design.

      -- Did I mention a robust site? ;) You want your site to be a destination of information and learning, with the added bonus of cool stuff to buy! Sparkfun and others excel at this, and it will pay in spades since a happy maker is a buying maker!

    • What's the end-game?

      -- This is a tough one. Do you -want- to be another Sparkfun/Adafruit with million-dollar+ revenues, a large, staff and essentially become a "businessman"? Personally, not really...

      -- Would you like your passion for design to pay the bills, or -perhaps- replace your income? A worthwhile goal, and as long as you keep fresh and offer value, probably not too hard to attain after a few years (3-5?).

      -- Don't forget to incorporate and keep precise records, since someday you might want to sell your venture. A small web-based business is incredibly easy to sell since inventories will be minimal, there will be no property or (hopefully) liabilities involved, and the value lies in goodwill and proven revenues.

    Well, those are some thoughts from a 6-month veteran of the on-line world! It's been fun so far, and with very modest expectations in-hand, looks like it will continue to be fun & challenging!

  • The ProMicro keyboard & mouse tutorial needs to be updated since the release of Arduino 1.01 makes a few of the processes mentioned irrelevant. (keyboard modifiers, specifically)

    Also, if the ProMicro shipped with the Arduino 1.01 bootloader, the process would be -much- simpler! ;)

  • The 32U4 does not exist in a DIP package. Exclusively TQFP and QFN.

  • But there still has to be a point at which you are transitioning the pin from Hi-Z, to an output, and then to a ground path.

    I guess the issue is that in those microseconds when the pin state is changed and the path to ground is opened, is there any chance of damage from a far higher voltage than Vmax for the MCU?

    Just an observation...

  • Not at all!

    PIC has massive community support, and is really far more mature and established than the fairly "new" Arduino community.

    About open-source, PIC JAL has been around for almost 11 years (!), totally open-source, cross-platform, and very well supported. JALlib is an incredible library of functions and device definitions, again, open source.

    Here's a link: http://code.google.com/p/jallib/

    The only thing stopping JAL from being truly exceptional for the beginner is an "Arduino-like" IDE that needs no set-up or supporting applications, and the addition of a universal bootloader with DTR-reset function. JALedit is an OK IDE, but not a lot of development has gone on with it, see: http://code.google.com/p/jaledit/

    FYI, Jaluino is an attempt at a PIC Arduino "clone", but they are kind of missing the point by not putting any effort into a distinct IDE. (which is really 90% of the value of Arduino!) See: http://jaluino.org/

  • Been a PIC user for ages, back when serial JDM programmers were the norm, but the Arduino team nailed it with "easy".

    What is really a very short time ago when I tried my first Arduino, I couldn't believe how stupid-easy it was! One simple application, a USB cable, and poof, blinking LEDs in seconds! The code nicely abstracts the hardware, but not too much.

    The open-source JAL community could have easily done the same thing with PIC hardware, and things could be very different now. It seems that "easy" PIC development went down the wrong road of bizarre, proprietary, "emulated" systems like PICaxe, and the like.

    The tricky part with PICs is there are -so- may variations and platforms it's a Microsoft-like nightmare to support them all in any sensible way! Picking a fixed-platform concept like the ATmega 8/168/328 would have been much harder to do with PIC.

    If you'd like to try PICs, the JAL environment is much like Arduino, perhaps even a bit easier to understand due to it's PASCAL-like structures vs. C. It also creates incredibly efficient code, and has an incredible assembler/compiler that creates fully-readable ASM files so you can actually see what the low-level code is for whatever you do.

    P.S. The new 16F 8 and 14-pin "midrange" PIC chips are awesome for small projects! ;)

  • Unfortunate for PJRC! ;) They obviously have put a lot of work into Teensy, only to see it duplicated by an open-source project! There's no question it will have a dramatic effect on their sales in the long run.

    The being said, the Leonardo platform and the myriad of variants that are/will be available soon will be awesome! The standardized codebase will help developers dramatically.

  • Cool!

    You really need to link that tutorial from the product page!

    You missed the "Mouse.isPressed();" function, but kudos for figuring out the modifier keys! (it's far more convoluted that I had hoped, maybe the team will polish it up for the release...)

    FYI, I did send my site to spark@sparkfun.com to see if there was any interest in my gizmos, but no feedback yet. Oh well... ;)

  • Teensy lead the way 'till now, but unfortunately Arduino has now caught up.

    Teensy is now a bit of a dead-end, as the Arduino IDE grows to take advantage of embedded USB, the need for 3rd party extensions like Teensy will dwindle.

    There are already lots of Leonardo-compatible breakouts out there that will offer Arduino-compatibility in a myriad of form-factors.

  • If you'd like to see what 32U4 pins actually map to what Arduino "pins", take a peek at the file: "pins_arduino_(Leonardo).h"

    Here's the relevant snippet (kind of a mess here...):

    // ATMEL ATMEGA32U4 / ARDUINO LEONARDO // // D0 PD2 RXD1/INT2 // D1 PD3 TXD1/INT3 // D2 PD1 SDA SDA/INT1 // D3# PD0 PWM8/SCL OC0B/SCL/INT0 // D4 A6 PD4 ADC8 // D5# PC6 ??? OC3A/#OC4A // D6# A7 PD7 FastPWM #OC4D/ADC10 // D7 PE6 INT6/AIN0 // // D8 PB4 ADC11/PCINT4 // D9# A8 PB5 PWM16 OC1A/#OC4B/ADC13/PCINT5 // D10# A9 PB6 PWM16 OC1B/0c4B/ADC12/PCINT6 // D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 // D12 A10 PD6 T1/#OC4D/ADC9 // D13# PC7 PWM10 CLK0/OC4A // // A0 PF7 ADC7 // A1 PF6 ADC6 // A2 PF5 ADC5 // A3 PF4 ADC4 // A4 PF1 ADC1 // A5 PF0 ADC0 // // New pins D14..D17 to map SPI port to digitial pins // // D14 PB0 RXLED,SS/PCINT0 // D15 PB1 SCK,PCINT1 // D16 PB2 MOSI,PCINT2 // D17 PB3 MISO,PCINT3 // // TXLED PD5 // RXLED PB0 // HWB PE2 HWB

    // these arrays map port names (e.g. port B) to the // appropriate addresses for various functions (e.g. reading // and writing)

    Really don't like to spam in a "competitor's" website (a bit rude!), but I have a pretty good HID mouse/keyboard tutorial for the Leonardo, with lots of undocumented functions I dredged from the *.h files: http://cal-eng.com/?page_id=579

    The keyboard modifier keys (CTRL, ALT, etc) escape me for the moment since the source code is a bit hard to follow! ;)

No public wish lists :(