Beetle Virtual Keyboard BadUSB Pro Micro ATMEGA32U4 Module Mini Development Expansion Board For Arduino Leonardo R3 DC 5V I2C (WHL #37)
Having no internet connection because your telephone provider screws up is bad enough – but this time, I screwed up. D’oh…
Well, I’m back, and now speeds have doubled. And cost has halved. Was that worth two weeks of heavily limited 2G/4G cellphone tethering interwebs? I don’t know, I don’t want to do that again…
Today’s item is a small Arduino compatible board. I bought this mid-February for 3.52€ including shipping on AliExpress, and it arrived yesterday.
Why do I buy such a limited version instead of one of the larger (Pro Micro/Mini, etc.) clones? After all, they are even cheaper and they offer the full range of outputs…well, for that one, I needed a small footprint. And a USB-enabled chip, so those 328p with separate USB bridging chip wouldn’t do the trick. There are some boards available that use the smaller 32U4 chip in QFN44 packaging instead of this TQFP44, but they do cost a pretty penny more than that. And size saving isn’t that much, as they still present a lot out I/O pins in the same 2.54mm spacing. So I ended up buying this unit.
On the back it says “DM MICRO-AU” from DIY MORE, the diymore.cc domain doesn’t seem to exist anymore. That’s the speed our friends in China are going forward. Out of business before the product reaches the customer
The front doesn’t really say much, as basically the entire space is taken up by the 32U4 and the pin headers. They are included (nice touch), but the three analogue and three digital pins on the top cannot be used when this board needs to be put into a breadboard one day. Other than that, it’s a nice design. Oh wait, the two red status LEDs are way overpowered. Geez guys, use a bigger resistor, that’s blinding and also consumes unnecessary amounts of power. These two LEDs actually consume 2mA each (the power LED is obviously always-on, the other can be toggled via software). Overall idle consumption on a regular 5V power supply without those LEDs is 34mA, so that bling-bling adds ten percent to the total power draw. So…I hit it with the iron, power status is now stealthy. That also quite nicely fits the assigned purpose, I have to say…
There’s another slight issue with this board: As this is designed to directly attach to a USB port, it needs to be thicker than a standard 1.6mm PCB. At 2.1mm it is, but for my heavily used ports, this is not always enough. Power pins seem to connect just fine, but the spring contacts for the data pins do not always make good contact. Here’s an example from the system log:
usb 6-1: new full-speed USB device number 36 using uhci_hcd
usb 6-1: device descriptor read/64, error -71
usb 6-1: device descriptor read/64, error -71
usb 6-1: new full-speed USB device number 37 using uhci_hcd
usb 6-1: device descriptor read/64, error -71
usb 6-1: device descriptor read/64, error -71
usb 6-1: new full-speed USB device number 38 using uhci_hcd
usb 6-1: device not accepting address 38, error -71
usb 6-1: new full-speed USB device number 39 using uhci_hcd
usb 6-1: device not accepting address 39, error -71
usb usb6-port1: unable to enumerate USB device
Quick fix – add some tin to the golden pads:
Not the best for contact resistance in the long term, but it’ll do:
usb 6-1: new full-speed USB device number 41 using uhci_hcd
usb 6-1: New USB device found, idVendor=2341, idProduct=8037
usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 6-1: Product: Arduino Micro
usb 6-1: Manufacturer: Arduino LLC
cdc_acm 6-1:1.0: ttyACM0: USB ACM device
input: Arduino LLC Arduino Micro as /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/0003:2341:8037.0011/input/input28
hid-generic 0003:2341:8037.0011: input,hidraw1: USB HID v1.01 Mouse [Arduino LLC Arduino Micro ] on usb-0000:00:1d.0-1/input2
Height of the connector part is now around 2.3mm, so that extra 0.2mm does make the difference. The outer pads need to be tinned a little less, otherwise their larger diameter would make the tin bulge rise another 0.1mm – and we already have good contact on these, but not on the inner (data) ones. Overall size by the way is 20x30mm, with the main part being 20x19mm. Overall height is 4.3mm. If you need insulation (bottom side has a tiny quartz and a transistor sticking out), that may add another bunch of microns.
So with that in mind, I’ll program this Arduino clone with a slightly modified version of the USB keyboard examples already present in the Arduino software. Maaaybe add a push button for convenience. And coat the entire thing so that ESD won’t kill it in the current weather conditions with low relative and absolute humidity due to the very snow-friendly temperatures.
That’s it for this week, and I got a very cool thing to display next time. Stay tuned
Does this board have SPI capability? There are several versions of this foorprint of Atmega32U4 available on Ebay.
I see there’s three prominent products:
1. DM Micro
2. SS Micro
3. CJMCU
All three of these have MI, MO and SCK on the screen prints. But only the listings for SS Micro, mention SPI capability in the description.
I am looking to get a board that has I2C for the virtual keyboard and SPI to interface with other sensors like an RFID and wanna stay under 5$. Do you have any recommendations?
Hey,
according to the 32U4 datasheet, there’s this pin mapping:
PB0 = SS = Pin 8
PB1 = SCK = Pin 9
PB2 = MOSI = Pin 10
PB3 = MISO = Pin 11
PD0 = SCL = Pin 18
PD1 = SDA = Pin 19
If all of those traces are accessible on the headers, it doesn’t matter if the seller claims SPI/I2C support, it’s just there in hardware.
Unfortunately, all of my three units are sitting at my work bench, so if I need to confirm the silk screen (and the black solder mask doesn’t really help here), you’d have to wait until Monday.