I actually couldn't reproduce any delay at all on my own Pro Micro, which is really nice. Even with all of the plugging and unplugging when debugging, my Soarer converter worked instantly.
Teensy 2.0 alternatives, ATmega32U4
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Ah, promising! I have my eye on these for putting inside keyboards as dedicated converters. Once they're configured right (running Soarer or TMK) I'd like to be able to just forget about them, and treat the boards as native USB.
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
With the bootloader problem likely a non-issue, it seems a bit pointless to post a full tutorial now. Instead, I'll probably just copy my pinout diagram scrawl into the GIMP.
- alinh
- Location: Romania
- Main keyboard: ErgoDox - MX blue
- Favorite switch: Buckling spring
- DT Pro Member: -
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
Sure, if you think so then I'll definitely do it. I suppose that flashing it is actually pretty difficult due to avrdude being pretty annoying. I only figured out how to flash it by grepping through console output of the Arduino IDE for "avrdude". ![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
- matt3o
- -[°_°]-
- Location: Italy
- Main keyboard: WhiteFox
- Main mouse: Anywhere MX
- Favorite switch: Anything, really
- DT Pro Member: 0030
- Contact:
problem with SparkFun is import taxes, you can find some of their stuff in EU but they are quite expensive.arbitrarycombination wrote: I’ve been using the SparkFun Pro Micro for a while, and I’m satisfied with it. Biggest plus to me is the Micro-USB connector, since I refuse to buy any more Mini-USB stuff (this is one of my pet peeves). It doesn’t have space for ISP pin headers though. More annoyingly, it does not have any mounting holes
The Arduino Pro Micro is nice as well. Has Micro-USB and ISP pin headers, but comes with the pin rows pre-soldered (at least mine did), so it’s hard to stuff in a keyboard case.
For anyone concerned with bootloader times: if you tinker with AVR processors regularly, I recommend getting an AVR Dragon for about 50€. This allows you to flash anything to a wide range of AVR processors via ISP or JTAG, without worrying about bootloader stuff. Highly recommended if you can justify the expense
ps: arduino can be bought without pin headers.
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
Thanks for the info! Mine was about half the price, but the items have since disappeared from eBay... ![Sad :(](./images/smilies/icon_e_sad.gif)
![Sad :(](./images/smilies/icon_e_sad.gif)
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
Here's the one I got (and I think it was your link, Scott):
http://www.ebay.co.uk/itm/360681719211
Took a week or two to show up, but not a bad price. £4.58 shipped, at the time.
http://www.ebay.co.uk/itm/360681719211
Took a week or two to show up, but not a bad price. £4.58 shipped, at the time.
- alinh
- Location: Romania
- Main keyboard: ErgoDox - MX blue
- Favorite switch: Buckling spring
- DT Pro Member: -
I can't seem to get pro micro to do a "software reset" into bootloader mode.
I used
and it reboots, but not in bootloader mode.
I might have to wire a switch of some sort so I can connect RST and GND externally - so I don't have to open up the case every time I want to upload new firmware
I used
Code: Select all
enum function_id {
TEENSY_KEY
};
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
{
print("action_function called\n");
print("id = "); phex(id); print("\n");
print("opt = "); phex(opt); print("\n");
if (id == TEENSY_KEY) {
clear_keyboard();
print("\n\nJump to bootloader... ");
_delay_ms(250);
bootloader_jump(); // should not return
print("not supported.\n");
}
}
const uint16_t PROGMEM fn_actions[] = {
ACTION_LAYER_MOMENTARY(1),
ACTION_FUNCTION(TEENSY_KEY)
};
I might have to wire a switch of some sort so I can connect RST and GND externally - so I don't have to open up the case every time I want to upload new firmware
- Igthorn
- DT Pro Member: -
With Grendel's BootHID bootloader on a blue pro micro, I can get tmk to jump to bootloader with 'magic key'+pause. The same config (adjusted for 4k boot area size) with the bootloader and fuses it came with just reboots.
Using this calc for reference, I changed fuses from 'lfuse:FF - hfuse: D8 - efuse: CB' to 'lfuse:FF - hfuse: D9 - efuse: C3' and hitting 'magic key'+pause jumps to bootloader for 8secs then loads tmk. Since I'm new to all of this I'm not exactly sure what all the fuses do yet. I think bootrst = 1 and HWBE = 0 fuses need to be set.
Using this calc for reference, I changed fuses from 'lfuse:FF - hfuse: D8 - efuse: CB' to 'lfuse:FF - hfuse: D9 - efuse: C3' and hitting 'magic key'+pause jumps to bootloader for 8secs then loads tmk. Since I'm new to all of this I'm not exactly sure what all the fuses do yet. I think bootrst = 1 and HWBE = 0 fuses need to be set.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
A different bootloader? Cool. Got some links?
I just tried flashing Soarer's Converter onto my blue Pro Micro (at last). The GND+RST reset thing is a bit of a pain to do. But I did manage to get the .hex onto it via avrdude, following some instructions Scott told me a while ago.
For notes to remind myself what I just learned:
On OS X, you install CrossPack to get Avrdude. Then you identify the port to flash to by running this command in Terminal, while zapping those pins to get the Pro Micro in loader mode:
ls -l /dev/cu.*
In my case three things turned up, and the only one that wasn't a built in device on my Mac was:
/dev/cu.usbmodem1451
So for me the flashing command is:
avrdude -p atmega32u4 -P /dev/cu.usbmodem1451 -c avr109 -U flash:w:filename.hex
A few attempts at flashing it with Soarer's Converter then followed:
Yay! Soarer's utilities seem to kinda sorta work. For instance:
Huh? Okay, let's reboot the converter.
Nope. Right, let's try getting some info:
Ugh. How about hid_listen?
Well, that's something at least. I need to hook up an actual keyboard to see if this is really working. One good thing is that startup is instant for Soarer on this thing. Phew!
But why is that orange LED on the whole time? Hmm…
I just tried flashing Soarer's Converter onto my blue Pro Micro (at last). The GND+RST reset thing is a bit of a pain to do. But I did manage to get the .hex onto it via avrdude, following some instructions Scott told me a while ago.
For notes to remind myself what I just learned:
On OS X, you install CrossPack to get Avrdude. Then you identify the port to flash to by running this command in Terminal, while zapping those pins to get the Pro Micro in loader mode:
ls -l /dev/cu.*
In my case three things turned up, and the only one that wasn't a built in device on my Mac was:
/dev/cu.usbmodem1451
So for me the flashing command is:
avrdude -p atmega32u4 -P /dev/cu.usbmodem1451 -c avr109 -U flash:w:filename.hex
A few attempts at flashing it with Soarer's Converter then followed:
Code: Select all
Johns-MacBook-Pro:~ John$ avrdude -p atmega32u4 -P /dev/cu.usbmodem1451 -c avr109 -U flash:w:/Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex
Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
Johns-MacBook-Pro:~ John$ avrdude -p atmega32u4 -P /dev/cu.usbmodem1451 -c avr109 -U flash:w:/Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex
avrdude: ser_open(): can't open device "/dev/cu.usbmodem1451": No such file or directory
Eavrdude: butterfly_recv(): programmer is not responding
Johns-MacBook-Pro:~ John$ avrdude -p atmega32u4 -P /dev/cu.usbmodem1451 -c avr109 -U flash:w:/Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex
Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.
Programmer supports the following devices:
Device code: 0x44
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9587
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex"
avrdude: input file /Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex auto detected as Intel Hex
avrdude: writing flash (14414 bytes):
Writing | ################################################## | 100% 1.09s
avrdude: 14414 bytes of flash written
avrdude: verifying flash memory against /Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex:
avrdude: load data flash data from input file /Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex:
avrdude: input file /Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex auto detected as Intel Hex
avrdude: input file /Users/John/Dropbox/Keybored/Soarer_Converter_v1.10/firmware/Soarer_at2usb_v1.12_atmega32u4.hex contains 14414 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 0.12s
avrdude: verifying ...
avrdude: 14414 bytes of flash verified
avrdude: safemode: Fuses OK (H:CB, E:D8, L:FF)
avrdude done. Thank you.
Code: Select all
Johns-MacBook-Pro:10.6 intel John$ ./scwr ../10.5\ ppc/SpaceInvader
scwr v1.10
scwr: looking for Soarer's Converter: found
scwr: reading file: 179 bytes: ok
scwr: sending info request: ok
device: failed to respond
Code: Select all
Johns-MacBook-Pro:10.6 intel John$ ./scboot
scboot v1.10
scboot: looking for Soarer's Converter: found
scboot: sending boot request: ok
device: failed to respond
Code: Select all
Johns-MacBook-Pro:10.6 intel John$ ./scinfo
scinfo v1.10
scinfo: looking for Soarer's Converter: found
scinfo: sending info request: ok
device: failed to respond
Code: Select all
Johns-MacBook-Pro:10.6 intel John$ ./hid_listen
Waiting for device:...
Listening:
wEE
remaining: FFFC
Keyboard ID: 0000
Code Set: 1
Mode: PC/XT
^C
But why is that orange LED on the whole time? Hmm…
- alinh
- Location: Romania
- Main keyboard: ErgoDox - MX blue
- Favorite switch: Buckling spring
- DT Pro Member: -
"plx gif moar info!"Igthorn wrote: With Grendel's BootHID bootloader on a blue pro micro, I can get tmk to jump to bootloader with 'magic key'+pause. The same config (adjusted for 4k boot area size) with the bootloader and fuses it came with just reboots.
Using this calc for reference, I changed fuses from 'lfuse:FF - hfuse: D8 - efuse: CB' to 'lfuse:FF - hfuse: D9 - efuse: C3' and hitting 'magic key'+pause jumps to bootloader for 8secs then loads tmk. Since I'm new to all of this I'm not exactly sure what all the fuses do yet. I think bootrst = 1 and HWBE = 0 fuses need to be set.
a tutorial of some sort would help I guess
![Smile :)](./images/smilies/icon_e_smile.gif)
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
Are you sure? I didn't have to do RST+GND to use scwr and it seemed to work fine... curious.
- Igthorn
- DT Pro Member: -
http://deskthority.net/workshop-f7/boot ... t7608.html
Grendel's BootHID is in that thread. You'll need an ISP to flash it or change fuses. You'll also need winavr or avr tool chain to compile them.
I used my teensy 2 using this and this as guides on how to hook it up and install arduino ide and teensyduino.
I think it should be possible to use a Pro Micro as an ISP, but you'll need to change the pins in 'ArduinoISP.ino' for it to work. This is because the Pro Micro has SS (PB0) connected to an LED.
ArduinoISP.ino from examples in Arduino IDE.
RESET needs to be changed to another pin and LED_HB can be changed to SS if want it to blink when arduinoisp is on.
Grendel's BootHID is in that thread. You'll need an ISP to flash it or change fuses. You'll also need winavr or avr tool chain to compile them.
I used my teensy 2 using this and this as guides on how to hook it up and install arduino ide and teensyduino.
I think it should be possible to use a Pro Micro as an ISP, but you'll need to change the pins in 'ArduinoISP.ino' for it to work. This is because the Pro Micro has SS (PB0) connected to an LED.
ArduinoISP.ino from examples in Arduino IDE.
Code: Select all
#define RESET SS
#define LED_HB 9
Last edited by Igthorn on 20 Jul 2014, 23:18, edited 1 time in total.
- Muirium
- µ
- Location: Edinburgh, Scotland
- Main keyboard: HHKB Type-S with Bluetooth by Hasu
- Main mouse: Apple Magic Mouse
- Favorite switch: Gotta Try 'Em All
- DT Pro Member: µ
I don't need to RST+GND to use Soarer's tools. (Think of RST as essentially the same thing as the reset button on a Teensy.) But I'm having some "device: failed to respond" issues, as I posted. Do you get any hiccups like that, Scott?
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
I'm almost finished my full tutorial for using Soarer's converter with the Pro Micro, if it helps. Sorry it took so long! I'll post a 0.1 draft and link to it in here soon.
- alinh
- Location: Romania
- Main keyboard: ErgoDox - MX blue
- Favorite switch: Buckling spring
- DT Pro Member: -
- scottc
- ☃
- Location: Remote locations in Europe
- Main keyboard: GH60-HASRO 62g Nixies, HHKB Pro1 HS, Novatouch
- Main mouse: Steelseries Rival 300
- Favorite switch: Nixdorf 'Soft Touch' MX Black
- DT Pro Member: -
Phew, I was worried for a sec. ![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
The (mostly) finished guide is up for anyone who needs it:
http://deskthority.net/workshop-f7/how- ... ml#p174388
I'll update it tomorrow with diagrams and instructions on how to wire it up for an AT-style socket, but right now I have to run. Back later!
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
The (mostly) finished guide is up for anyone who needs it:
http://deskthority.net/workshop-f7/how- ... ml#p174388
I'll update it tomorrow with diagrams and instructions on how to wire it up for an AT-style socket, but right now I have to run. Back later!
- alinh
- Location: Romania
- Main keyboard: ErgoDox - MX blue
- Favorite switch: Buckling spring
- DT Pro Member: -
Seems that the usb connector comes off very very easily. I gently tried to move the usb cable a bit to make it fit in the case and the usb connector broke. It's only soldered to the board in 2 places and the 5 pins just make contact with the board. There's no way I can solder that back on. I managed to identify on the board where 4 of the pins connect, but can't find the 5th one... unit lost just when I everything worked and I was putting the case back on ![Crying or Very Sad :cry:](./images/smilies/icon_cry.gif)
![Crying or Very Sad :cry:](./images/smilies/icon_cry.gif)
- alinh
- Location: Romania
- Main keyboard: ErgoDox - MX blue
- Favorite switch: Buckling spring
- DT Pro Member: -
So yeah... be very careful if you plan on using this!
What people are saying on the SparkFun Pro Micro page (of which this is a clone of):
"The features of this board are great! However, the usb port snapped off after only a couple days of light usage. I got a second board and covered the terminals in epoxy (and under the board where the little plastic alignment posts go through the board). Hopefully this will extend the life of the connector to survive my development phase. If this only used through-hole solder joints for the usb port it would be perfect!"
"My one complaint is that the USB receptacle is too flimsy (a common problem with surface-mount micro USBs). After plugging / unplugging a USB cable a dozen or so times, even quite gently, the receptacle breaks off, pulling the solder terminals off with it. Although I appreciate the design choice to make the size as small as possible and the back of the board flat, a device whose main feature is native USB should have a sturdier USB receptacle."
"I love this little board….. but word of caution, the micro usb pulls off kind of easy, be very gentle. It would be nice if SF could used vias as the usb footprint pads for added strength which is how we do it where i work for heavy use applications."
What people are saying on the SparkFun Pro Micro page (of which this is a clone of):
"The features of this board are great! However, the usb port snapped off after only a couple days of light usage. I got a second board and covered the terminals in epoxy (and under the board where the little plastic alignment posts go through the board). Hopefully this will extend the life of the connector to survive my development phase. If this only used through-hole solder joints for the usb port it would be perfect!"
"My one complaint is that the USB receptacle is too flimsy (a common problem with surface-mount micro USBs). After plugging / unplugging a USB cable a dozen or so times, even quite gently, the receptacle breaks off, pulling the solder terminals off with it. Although I appreciate the design choice to make the size as small as possible and the back of the board flat, a device whose main feature is native USB should have a sturdier USB receptacle."
"I love this little board….. but word of caution, the micro usb pulls off kind of easy, be very gentle. It would be nice if SF could used vias as the usb footprint pads for added strength which is how we do it where i work for heavy use applications."
- ماء
- Location: Solo, ID
- Main keyboard: Soon
- Main mouse: Roccat Lua
- Favorite switch: Blacks to heavy>Lighter
- DT Pro Member: -
not enoughsolarnz wrote: Are you planning on using a board per hand, or one board for both?
If you're planning on using two boards, the Pro Micro should be enough.
I would not recommend the Nano, as it does not use an AtMega32u4 chipset. The Pro Micro does, which means that software that is designed to run on the Teensy 2.0 board can run on it. You will have to look up the Arduino Leonardo / Micro / Pro Micro pin out to map the pin names between what the teensy uses and the Arduino uses, but that is it.
The Pro Micro does indeed not have a reset button, however this is not required.
1) With the default bootloader, it will stay in programming mode for 10 seconds (I think) when it is plugged in before booting the firmware that has been loaded.
2) You can wire your own switch on to it, all you have to do is connect the RESET pin to ground.
An added benefit of the Teensy and it's HalfKay bootloader is that it doesn't spend 10 seconds once it is plugged in to allow for programming. You have to explicitly either press the reset button, or short the reset pin to ground to allow you to program it. This could potentially save you a lot of frustration when trying to use your keyboard in your bios - Imagine being unable to hit the setup key due to your keyboard still booting!
![Embarrassed :oops:](./images/smilies/icon_redface.gif)
murium right, teensy 2.0 is very pretty but hard to find here, I might buy one promicro again
it's make sense/can if i have 2 pro micro for two board or 2 controller
![Laughing :lol:](./images/smilies/icon_lol.gif)
![Razz :P](./images/smilies/icon_razz.gif)
-
- Location: indonesia
- Favorite switch: Blue
- DT Pro Member: -
how many pins are owned arduino leonardo r3?Soarer wrote: Teensy 2.0 is still the default go-to board for many projects - it's the smallest of the breakout boards, and a good reliable choice. Needless to say, it's the one the rest are compared with.
But different projects have different requirements, and sometimes the Teensy just isn't quite right for them.
---
To build the smallest converter I could, I used a dongle made by TIAO:
The soldering was difficult and fiddly, and one of the dongles I got didn't work, but I did get one working very nicely in the end![]()
---
Lately the Arduino Leonardo and clones have become highly available, and while they're comparatively large, they are easy to plug bits into and experiment with.
---
Today I spotted a breakout titled "Leonardo Nano Pro Mini ATmega32U4 ..." on eBay
This one looks quite nice - a little bigger than a Teensy, but it has a couple of nice features. The pinout is more regular, with the pins for each port mostly grouped together, so it would be nicer to use for a replacement keyboard controller. Also, it has mounting holes, so it should be easier to secure inside a project box, without having to first solder it to some stripboard.
---
Please post more!
(Please try to upload pictures here rather than link, and if the item is on ebay please try to give enough identification that it might be found again after the listing has expired. Thanks!)
it's enought around 24?