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?
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.
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.
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.
// 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! ;)
Win 7 works a treat! (at least for the “official” Arduino bootloader, can’t absolutely speak to the SF version)
Nope, Leonardo is completely specific to 1.0RC1 and above.
The ATmega32U4 is a completely different architecture to any other ATmega used before, so it required new pin, I/O, and Timer definitions. Theoretically you could write support for v023, but why bother? ;)
News - According to Pete - Febru… | about 4 months ago
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…
News - New Product Friday: Look … | about 4 months ago
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/
News - New Product Friday: Look … | about 4 months ago
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! ;)
News - Using the ProMicro | about 4 months ago
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.
Product DEV-10998 | about 4 months ago
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… ;)
News - Using the ProMicro | about 4 months ago
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.
Product DEV-10998 | about 4 months ago
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! ;)
Tutorial - A ProMicro Installation and Arduino Briefing | about 4 months ago
Win 7 works a treat! (at least for the “official” Arduino bootloader, can’t absolutely speak to the SF version)
Nope, Leonardo is completely specific to 1.0RC1 and above.
The ATmega32U4 is a completely different architecture to any other ATmega used before, so it required new pin, I/O, and Timer definitions. Theoretically you could write support for v023, but why bother? ;)
Tutorial - A ProMicro Installation and Arduino Briefing | about 4 months ago
Puzzled why you need a Sparkfun driver…
If you’re using the Arduino Leonardo bootloader (seems to be a tweaked version of it…), then the drivers are already part of Arduino 1.0
There are also quite a few caveats to Arduino Leonardo support (1.0) at the moment:
Analog inputs can’t be used as digital
Interrupts don’t work
Any code that assumes certain Timers are attached to specific pins, or they can be directly manipulated, will fail miserably! ;)
The HID mouse and keyboard examples have been removed in Arduino 1.0 (not so in RC2)
All in all the Leonardo platform is super-cool, and an amazing bit of coding for the bootloader/runtime firmware!