The main need for a machine is to have a way that spoiled ballots (i.e., ballots that cannot
be unambiguously read) can be rejected (and recast) without any human other than the voter
seeing them (or the result on them) before they can no longer be connected to a particular
voter. The second need for a machine is to allow people with disabilities to vote, again
without revealing the vote to another human.
There's plenty of history of votes which have been miscast or discarded on account of voters
accidentally submitting ballots which the election officials could not interpret successfully.
Of course, the right device is a machine which optically scans hand-marked ballots and
collects them (if they're unambiguous) in a box for later recount (if necessary). This could
be coupled with a device that uses an audio interface and a button to decide what to print on
a ballot for blind people as well as the ability to read the ballot through the headphones
(optically scanning it) so the voter can confirm their vote independently of what they did
with the interface, before casting it. Of course, this needs very little source, open or
otherwise, and it can all be verified experimentally to behave correctly.