Recommendations of boards


I'm working on a project that needs the following functionalities for each module:

Main unit:

  • read then reset NFC data from attachable/detachable media box (data is made up of up to 50-element hash table)
  • control 2 stepper motors, 1 servo
  • wi fi connectivity to update remote database with read/written data from media box

Media box

  • USB host, to host scanner to capture each scanned barcode, and then pass it through to EPOS via emulating keyboard
  • reset then write barcode data from each scan at EPOS to be passed onto Main unit via NFC

What board/shields should I buy for Main unit and separately Media box to achieve minimum cost? The Media box has space constraints so will be looking for the smallest board that allows USB hosting and NFC read/write.

Thank you.

Issues (in order of difficulty):

1. Identify main board for the Media box unit

The board should:

  • be compatible with USB host shield, or be able to act as a USB host - Due is the only board for the latter option
  • be able to appear as a native keyboard (32U4 or SAMD microprocessor boards) - Leonardo, Esplora, Zero, Due and MKR Family
  • be compatible with HX711 (or similar) load sensor modules
  • work with RFID module
  • not break the bank as there are going to be a number of Media boxes per setting
  • be as small as possible as space is at premium at some of the settings

Key deliverable here is fast process where Media box should:

  • using a barcode scanner scan a barcode on CD/DVD case
  • for each scanned product - read load sensor to count number of discs (Q) placed onto Media box disc holder - discs weigh 16g each so it should be achievable
  • write barcode and Q onto NFC sticker attached to the Media box
  • via Keyboard.write() pass barcode to laptop/pc where EPOS system runs
  • update crystal display at each stage until scanning is complete

2. Identify main board for the Main unit.

Here a fairly standard board should be sufficient such as UNO - may be Due as speed is more crucial for the Main unit. Main unit carries out a 10 or so step process to archive discs without cases. These steps involve reading NFC data, activating steppers/servos and updating crystal display - so nothing out of ordinary.

I started on (1) but got stuck in implementation of software USB keyboard simulation using V-USB. Another option was to go through amending bootloader program as explained in HID Project, but it seemed too much to go through for a novice like me.

To my mind there is far too much in your post. What you are proposing is a complex project that needs to be approached as a series of small separate parts - for example reading or writing NFC tags, or sending keystrokes. Don't try to develop a complex project all at once.

Also, don't attempt to buy all the parts up front as you will probably change your mind as your knowledge grows.

If you can identify a particular part of the project that you need help with then it will be much easier to give useful advice.

You mention using an Arduino to send keystrokes to an EPOS device. That seems like a strange way to do it, are you sure it is possible for the EPOS device to receive keystrokes?

If you want to send keystrokes then you could use a Leonardo or Micro or AFAIK a DUE - but I have no experience with a DUE.

Another thing to consider is whether it might be easier to implement your project with a RaspberryPi which is much more powerful.


The only part of the project I understand is the USB keyboard/barcode scanner pass through.

A Leonardo with a USB host shield should work as a USB keyboard pass through. Take a look at the following.

If the EPOS system does not recognize the Leonardo as a keyboard more work is needed.

hi Robin2 and gdsports, thank you for your replies. And those links are useful.

yes I can see now having re read, explanations got muddy. I will update post #2 in sec to make it more clear.

Got immediate couple of questions:

  1. Uno has a 6 male pins on it's board to which USB Host shield attaches itself when stacked up. If I was to use Micro with USB host shield I have, is there way to know which pins of the Micro I should connect to USB host shield pins? Micro has also 6 male pins, are the equivalent pins that UNO has so should be connected to corresponding female pins of the USB host shield?

  2. What about memory considerations, I fear that having done all the work of finding right board and then spending time on coding/researching, when fully implemented Micro or Leonardo may not have enough memory to operate sketches. Hence why I tried to give full picture of the project in order to have a right boards from the start for the Main unit and Media box. I think I may be just about ok, what do you think based on hopefully better explained post #2?

Thanks for your time.

The 6 male pins at the edge of an Uno opposite the USB connector are designed to be the same on all Arduino boards. (The 6 male pins near the USB connector are for programming the 16U2 microprocessor and should be ignored)

Otherwise I can't think of any reason to change what I said in Reply #2.

This project is too complex to be able to specify all the requirements up front.

Be aware that a DUE works on 3.3v rather than 5v which may have implications for the things it can connect to. Also there will be many fewer Forum members with experience of the DUE.


  1. I have not used the Arduino Micro but it appears from the photos to have a white dot near one pin of the ICSP which designates pin #1. The USB host shield should have a similar white dot. Line up pin #1 to pin #1 and it should work. There are other pins that must be hooked up as well so check the USB host shield docs.

  2. I have not used the load sensor or the RFID reader/writer so I have no idea about the final code/RAM size.

I can only suggest compiling sample programs for the load sensor, RFID read/writer, USB host keyboard, etc. and see how much Flash and RAM each one takes. The sum should give you some idea of how Flash and RAM will be required for the final product.

thank you both, much appreciate your time. It looks like I need to start with either Leonardo or Micro and see where it takes me.

It is a shame that I get an impression that update of this website is inconsistent in some place or half complete. For such seemingly growing (??) Arduino ecosystem, some links on training materials refer to external source rather than prepared by the company. Some of those links are dead.

May be it is just me.

It is a shame that I get an impression that update of this website is inconsistent in some place or half complete. For such seemingly growing (??) Arduino ecosystem, some links on training materials refer to external source rather than prepared by the company. Some of those links are dead.

You need to post specific links if there is to be a chance of getting things fixed.

The Arduino is an Open Source system and a great deal of the software has been contributed by unpaid volunteers.