Note: Some of the eBay sourced boards were a bit thicker and I damaged a USB-A socket when I plugged it in.
Once again, in about 2019, eBay suggested I buy some DigiSparks. At the price suggested, 1.69 GBP, it was worth a purchase.
They sat in my box of bits, awaiting a use.
They can be programmed using the Arduino IDE.
https://www.instructables.com/Digispark-DIY-The-smallest-USB-Arduino/
This was very helpful, but is no longer connecting: http://digistump.com/wiki/digispark/tutorials/connecting
In the box labelled "Additional Boards Manager URLs"
enter: http://digistump.com/package_digistump_index.json
Note ( 2024-09-01 ): http://digistump.com is refusing connection, so try these work arounds.
See this: https://github.com/digistump/DigistumpArduino/issues/167
This is used in preferences instead.
https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json
or
https://drazzy.com/package_drazzy.com_index.json
And https://forum.arduino.cc/t/digistump-digispark-no-longer-available/1234095 - helpful
Drivers and firmware: https://github.com/micronucleus/micronucleus v2.04
https://github.com/digistump/DigistumpArduino - more information
Note 2025-08-28: I successfully added DigiSparks to Arduino IDE 2.3.6 and programmed a new DigiSpark
I had a project where I need to soak test a typing app. It had to type as if a user typed them.
The rate of typing was more important than what was typed.
The keyboard example for the DigiSpark almost does what I wanted.
The Arduino Leonardo documentation has a USB keyboard example.
and
https://docs.arduino.cc/language-reference/en/functions/usb/Keyboard/
They are super for simple HID keyboard automation. Plug it and it types a set of phrases at a speed typed by a user.
I have needed to reflash the bootloader once or twice.
AutoType describes using two to type across a service where both people TYPE and READ their conversation.
I wanted to type each character with a pause between them.
Automation has many challenges. Keyboards that AutoType in turn can be used to soak test the App and Workstation.
Manual intervention is required to set up a call, but once set up and the cursor moved to the input box on the GUI, the typing could be turned on and left typing back and forth.
It is very difficult to read the screen on the workstation or App.
The diagram below uses two Arduino. A wire between them is used to synchronise typing in turn. The resistors are important to prevent latch up.
And a diagram for the DigiSpark
Once the call was set up, it could be left.
USB keyboards are used on PC, and can be used on Laptops Smartphones also support USB keyboards and a mouse using an OTG lead.
Apple, Android, Windows , Linux all had little differences in buffering keystrokes.
AutoType , AutoType Automata, AutoTyping have further notes.
One advantage is the code on the Workstation and Smartphone App does not need major modifications. Many little issues were found and fixed.
The DigiSparkCDC examples do not work. They Blue screened my Win10 PC back in 2019. On 2024-09-01 they compile, but Windows complains that Windows does not recognise the Device.
Use a Leonardo instead.
The Arduino Leonardo can enumerate as a Keyboard, Mouse and Serial Port.
The workstation received an incoming call and at the end of the call, the advisor has to press a button or key to move onto the next call.
A source of calls could be used overnight, but the workstation needed a device to press this button to so it could handle the next call.
Reading the screen is a challenge. The Arduino Leonardo or DigiSpark offered a solution.
A light dependent resistor was used to detect in incoming call when the Workstation screen changed, and it could trigger a DigiSpark to press the keys to make the workstation ready for the next call.
Automation has many challenges. Keyboards that AutoType in turn can be used to soak test the App and Workstation.
Manual intervention is required to set up a call, but once set up and the cursor moved to the input box on the GUI, the typing could be turned on and left typing back and forth.
The diagram below uses two Arduino. A wire between them is used to synchronise typing in turn. The resistors are important to prevent latch up.
Once the call was set up, it could be left.
USB keyboards are used on PC, and can be used on Laptops, and smartphones also support USB keyboards using an OTG lead.
Apple, Android, Windows , Linux all had little differences in buffering keystrokes.
It might be possible to use a DigiSpark/ Arduino to simulate the finger on the Smartphone screen, but I have yet to acheive it.
One issue found was my DigiSpark code pressed ENTER using \n and the smartphone app lost the focus, so I had a version that suppressed pressing ENTER for the App.
A robot could be used with a dabber pen.
AI will solve all of this as it will be able to replace the human in the workplace. Automation stumbles when you try it.
Reading the smartphone screen is very difficult for a robot. Converting a changing image to an event is an interesting project.
Reading the screen on the Workstation is also very difficult. The Human operator has eyes and can move the mouse.
Leaving a workstation logged in, in an unmanned room is another challenge.
Having a tool to semi automate a task works.
I got this when using the board manager and Win10: "CRC error, file corrupted. Try to repeat later"
This helped. https://github.com/arduino/Arduino/issues/9719
I deleted C:\Users\doug\AppData\Local\Arduino15\library_index.json
When I next opened the IDE it seemed to have installed the new boards.
C:\Users\doug\AppData\Local\Arduino15\library_index.json ~/.arduino15/library_index.json
https://github.com/arduino/Arduino/issues/9719 - Win10 reports CRC error
Another may be related problem. The iPhones would not take any updates and failed.
My ISP suggested I upgrade and it seemed to fixed the iPhone update issue.
My old ADSL2 router was replaced by a router that supported FTTC.
I installed DigiSpark into the Arduino IDE over the new router onto a new Windows computer with no issues.