0

I am currently teaching a remote middle school summer camp next year that involves microcontroller programming. I’ve chosen to avoid Arduino microcontrollers for the camp and use a MicroPython compatible microcontroller instead. One microcontroller that I am interested in using is the Lolin V 1.1.0 with an ESP-Wroom-32 chip since it is cheap and reliable.

One downside that I’ve noticed with this MCU is that a VCP driver needs to be installed in order to establish a USB to UART connection (It contains a CP210x chip). I’m not too sure how many Operating systems have a VCP driver installed by default. However, I tested to see if the microcontroller was able to be registered on three of my different laptops. On two MacBook airs, my computer was successfully able to locate the MCU without a virtual driver installed. Similarly, I used a Windows computer and a connection was able to be established after 10 minutes (Not sure why it took this long). Finally, I tried it on my friend’s European MacBook and his computer wasn’t able to locate the microcontroller until I installed the driver.

I’m expecting that the camp would be ~300 students and I don’t want anyone to not be able to connect with their Microcontrollers and don’t want to include the installation of the driver since it can be tedious.

Does anyone know how big companies that teach Microcontroller programming to beginners such as MicroBit, Raspberry Pi, or Arduino deal with this problem? How do they ensure that the microcontrollers are read by the computer without having to have students to go through the tedious process of installing a driver?

What percentage of Operating systems have a CP210x VCP driver already installed?

Are there any microcontrollers that don’t require a USB to UART driver installation altogether?

Thanks! Ryan

  • 2
    This is not really a valid question for SO. If it presents a standard CDC/ACM class device, then Linux, Windows and MacOS "just work". Some USB/Serial bridges such as FTDI require specific drivers, but they are so common, they too "just work" in my experience. Never used the Si-Labs bridge, but they have drivers for Windows Linux and MacOS at https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers. If they have been qualified they will likely be installed automatically on Windows and MacOS. For Linux it is a matter for the distro I guess. – Clifford Mar 22 '21 at 11:05
  • Linux deveiopment for these products is trivial drivers are included in the kernel and simply work. Cross compilation tools are trivial as well. windows makes all of this more painful either for the end user or the vendors providing drivers and tools. – old_timer Mar 22 '21 at 20:29
  • 1
    End of the day you have to install something on the computer for these classes, you have to add an editor a cross toolchain, and some tool to program the part. For the pi you can do the sd card dance and not need a tool although that is undesireable and a uart based bootloader (and a reset button) makes life so much easier. – old_timer Mar 22 '21 at 20:31
  • 2
    If you cant handle installing a driver you are not going to get very far as a programmer, day to day life of programming is managing your computer and tools, regular re-installs, multiple operating systems at times, etc. writing production code is a very very very small percentage of your professional life. – old_timer Mar 22 '21 at 20:32
  • 2
    baremetal in particular the actual code that makes up the end product is near zero percentage of your time much more than 99% of your time is reading, then more reading, then more reading, then throwaway code based on what you are reading as no manual is perfect, then building ad-hoc tools and build systems to build the code, plus all the meetings with hardware engineers and management and requirements documents, etc. Including installing toolchains, dealing with development machines, drivers, kernel settings, etc. what better place than to learn this in school? – old_timer Mar 22 '21 at 20:35
  • how you do this for a summer camp is you simply install it on the systems you are providing, just like you would deploy an operating system into a server farm, you create a master image and you clone that into each system, if not networked then you dont even need to mess with hostnames, you are done (unless windows if that is what you want to use cant find its key from the motherboard). even easier you can run linux on these system and pxe boot them not even needing hard drives. – old_timer Mar 22 '21 at 20:38
  • if broadcom were to have a summer camp it would likely just have raspberry pis as the development machines with cloned sd cards with everything the class needs on there. – old_timer Mar 22 '21 at 20:42
  • Completely inappropriate here. This isn't a teaching site. – TomServo Mar 22 '21 at 21:18

2 Answers2

0

The only one I am aware of that is pre-installed in windows is microchip PIC (eg PIC16F1454) but a PIC is not the best device for teaching. You have to run an application on the device to use USB VID:PID 04D8:000A.

I don't have a machine to test it but maybe a microchip MCP2200 (04D8:00DF) will be the same.

Tom V
  • 4,827
  • 2
  • 5
  • 22
0

It's usually not so much dependent the choice of microcontroller, but rather the USB-UART chip on board. There aren't many of those to choose from. SiLabs CP210x and FTDI's FT232/FT2232 are widely used families, so you can't really go wrong with them. Windows installs drivers for both automatically and seamlessly. Linux has support built into the kernel for all major distributions. Don't have experience with Macs, I'm a little surprised you had to do anything manually. Driver support for FTDI devices tends to be a little better across the board.

If you're interested in ESP32 and have a little more budget than for the Lolin, feel free to try the ESP-WROVER-KIT which has the FTDI FT2232HL chip and is generally much more feature-rich.

Tarmo
  • 3,728
  • 1
  • 8
  • 25