Arduino, johnny-five, can it work without connected computer? - arduino-uno

I am new guy on Arduino and johnny-five. I am not clear about the way johnny-five work. JS code will run on computer or run directly on Arduino board? Besides, can we use johnny-five for IoT? because I have not found any component to support Arduino uno connect to internet(call rest api or Azure service,..)
Thanks,

johnny-five uses Firmata. The Javascript code is running on your PC, and the Arduino is basically used as a peripheral — the Firmata firmware allows software on your PC to interact with all of the Arduino's inputs and outputs, but there isn't any real "intelligence" running on the Arduino.
Yes, it's possible to use REST APIs on an Arduino without the help of an attached computer, if the Arduino has an Ethernet Shield or some other method of connecting to the internet, but do keep in mind that the Uno only has 2kB of RAM and 32kB of ROM, so there's a limit to how complex you can make things.

You can connect arduino to a raspberry, it is not expensive.

Related

Native USB debugging on ESP32 in PlatformIO without ESP-IDF toolchain?

I have a custom ESP32-S2-based circuit board with USB-C which does not have a USB-serial converter IC like a common dev board might. On this board, USB(-) is on GPIO19, and USB(+) is on GPIO20. USB works great for powering the board and for uploading firmware.
The board works well and I have access to good old-fashioned serial console via a USB-to-logic level serial interface, but it would be nice to be able to get serial out to USB along with the firmware upload (like a dev board).
I’m using PlatformIO in Visual Studio Code, and writing with arduino-esp32 rather than ESP-IDF.
I understand by these instructions from Espressif that when using ESP-IDF I can configure log output to go to USB CDC rather than UART, and this has been done successfully on my custom board. But I would like to be able to do this without having to switch over to ESP-IDF.
I’m presuming that one of the partitions that PlatformIO is building for me is this configuration with some nice common sense defaults, but I can’t see how I might alter those defaults to do what I’m looking for.
Any thoughts or pointers?

Is ESP32-based boards suitable for both Classic and BLE functionality?

I have an RPi4 which has an onboard BT/Wifi module produced by Cypress (Cypress CYW43455).
By using BlueZ on the RPi, I can run the following commands to use both Classic and BLE functionality:
l2ping MAC //this uses classic bluetooth
hcitool lescan //this uses BLE scan
gatttool //this uses BLE also
Now I don't know how Cypress CYW43455 is interfaced with RPi4's CPU, but I want to reach the same functionality with using ESP32 with RPi4 (probably via UART).
So my question is: (how) are ESP32-based boards capable of providing the same functionality as the Cypress one?
I mean how:
are they need to interface with RPi? (via UART? via USB? other?)
is BlueZ working with ESP32 or other software is needed?
What I actually need is to
be able to "l2ping" a classic BT device
be able to read and write GATT data from/to a BLE device
be able to monitor BLE advertisement packages
The Cypress chip is connected over UART to RPi. You can connect an ESP32 in the same way (using UART) and then use hciattach to attach it to the kernel.
Note that you need to flash the ESP32 with a firmware that connects hci to the uart port.

8Mhz Bootloader for Arduino Micro

I have just finished a project using an Arduino Micro dev board and want to move to a standalone ATmega32.
I need to run this at 3.3V and I dont want to go down the overclocking road so I have an 8MHz crystal to put on it.
I still want to be able to upload sketches via USB and the Arduino compiler so I gather I need to burn a different bootloader.
For this purpose I have purchased a USBASP programmer.
I am slightly unsure of what to do next - everything I can find on the topic either relates to the ATmega328 or to burning bootloaders using another Arduino.
I have worked out that I need to modify boards.txt to point to the correct bootloader....but which is the correct bootloader for ATmega32 at 8Mhz?
Also do I need to change any fuses?
Thanks
I think you're a bit out of luck.
The ATmega doesn't have hardware USB, so I assume the bootloader is using V-USB to implement USB. That stack, being a software implementation of USB's high-speed signalling, requires at least a 12 MHz clock (higher is better).
I don't think you can run V-USB using only the internal 8 MHz oscillator.
According to the OP comments the micro is indeed an Atmega32u4, not an Atmega32 (#OP: please fix the question to match this).
Since it has onboard USB, you can use a pre-existing bootloader like the sparkfun one:
https://www.sparkfun.com/products/12587
Here you have the link to one of their products, the Arduino pro micro 3.3V (which runs at 8MHz). You can add the sparkfun arduino boards repository to your IDE and then just use the board specification for their pro micro 3.3V do upload the correct bootloader and to program it through the USB just like the usual Arduino Micro.

Problems reading serial data on Windows IOT rasberry pi3

I have an Adafruit Ultimate GPS on a USB serial interface and using the same UWP application can read data just fine on a x86 build on a desktop. When I try a ARM build on the PI3 (remote), everything appears to work, but the serial data read never returns. No timeout, nothing. On the desktop, it starts getting GPS data from the chip right away. I also tried the CustomSerial sample app and am getting the same result. I do have the manifest updated to show serial port access, so don't think that is the problem.
Any ideas would be greatly appreciated. Thanks.
Problem resolved, operator error. Prolific driver not supported, was trying to read data from on-board serial port. Move the GPS sensor to the on-board serial, all is working now. Apologies for the distraction.

Spying on a USB connection on Windows?

I have an Arduino application talking over USB to an application on Windows 8 using the MAVLINK protocol. The connection appears as COM3.
Is there a Windows application that can spy on this connection and display the traffic going in both directions? Raw bytes are fine, I don't need the protocol decoded.
You could log serial port activity using Portmon. (Edit: You need to first connect to the local computer via the Computer menu, and you must start capture on the port before a program opens it.)
You may not want to log USB traffic. Such a log would include a lot of extra information relating to the USB to serial adapter which is providing COM3. Portmon would only give you the bytes transferred over COM3, and the Mavlink protocol is entirely contained within that data stream. If you're sure you want to log all USB traffic to and from that device, then I recommend SnoopyPro. In Windows 7, you need to run it as administrator.
If you can use Windows XP in your environment, USB sniff should work for you. If you need something more powerful (and are willing to pay a fee for it) then USBLyzer might be a viable option.
The answer is SnoopyPro, and you can download it at:
SnoopyPro Sourceforge
This tool allows you to get USB information and also USB communication data. I used it in the past to know how a USB device worked in order to do its driver on Linux. I used this tool as a sniffer.
Basically, SnoopyPro allows you to intercept, display, record and analyze the USB protocol and all transferred data between any USB device connected to your PC and applications. It can be successfully used in application development, USB device driver or hardware development and offers the powerful platform for effective coding, testing and optimization.

Resources