i have Pi3 and i'm developing UWP to transfer data from/to Pi3 and another device (currently PC over UART)
but i can't get the right data, i'm using the Sample from Microsoft SerialSample but it didn't work, the data comes not right, i enforced the encoding in the App in both sides but no luck.
Link to the sample
You need check hardware compatibility list to see if your device is supported on Windows IoT core.
Also, and for serial sample here is a note to state the supported USB-to-TTL cables or modules:
NOTE: Only USB-to-TTL cables and modules with Silicon Labs chipsets are natively supported on MinnowBoard Max and Raspberry Pi2.
So, USB-Serial CH340 is not supported on Windows IoT core.
For doing self testing of the device, you can use the sample and do the following two tests :
First, shorten Tx and Rx of the USB-to-TTL cable to test it on PC.
Second, shorten Tx and Rx pins on Raspberry Pi to test its on-board UART.
You will receive what you have sent if the device works normally.
Related
Overview
I need to program a recently purchased STM32F407ZGT6 board
In 'normal mode' my computer doesn't recognizing the board as a Ports (COM & LPT)/STMElectronics Virtual COM Port when connected via USB (I'm using a Windows 10 Pro). The LEDs turn on and I can get it into 'DFU mode'. When I try to debug the code, I get the "No ST-LINK detected!" message in either mode.
This is my first time connecting the board and also my first time dealing with STM32
Despite the instructions, I want to program the board using C directly from the STM32CubeIDE
Here is what I found
I found this question [1] where Device Manager reads the STM as Disk drives/STM32. My PC identifies it as mass storage and portable devices on Windows 10 Pro. When in DFU mode, I can see it as Universal Serial Bus Device/STM32 BOOTLOADER on Device Manager.
The tutorial [2] uses Flash Loader Demo and this older tutorial [3] uses STSW-STM32080, but both of the drivers are tagged as obsolete on the ST Website. STM32CuberProgrammer is indicated instead, but I would like to flash and debug directly from the IDE. Another forum reply [4] says that "you need a ST-link V2 programmer to program the brand new chip".
In summary
I can see the solution being one of the following options:
correct answer I need to use the ST-LINK-V2 to program from the IDE and that's the only way
I need to flash a bootloader via STM32CubeProgrammer to get it to work via IDE (is there a standard code for this?)
I have to build the cross-compiler for MicroPython [5] before I get to program it in C
What are your thoughts? Any other driver or idea that I might be missing?
Update
I went on and got my hands on a ST-LINK V2. I made the connection via the JTAG/SWD connector (see schematic) and I also tried connecting directly with the pins:
ST-Link
JTAG/SWD
Pins
SWCLK
9
PA14
SWDIO
7
PA13
GND
10
GND
3.3V
1
3.3V
RST
3
PB4
The ST-Link is not recognized. The ST-Link blinks and the board is powered up, but that's it. Device manager before and after shows the same.
So I went on checking if I was missing any new driver/program. I installed the STSW-LINK004 (STM32 ST-LINK Utility v4.6.0.0) based on these instructions, but no luck, Utility cannot find it either. I've reseted the computer after each driver installation. If I connect my boardvia USB in DFU mode, it is still recognized as STM32 BOOTLOADER, if I do it with the ST-Link, nothing changes.
Update solution
It turned out the ST-Link was faulty and therefore not connecting. After finding another ST-LINK/V2, the computer can recognize the board under Universal Serial Bus devices/STM32 STLink.
Debugging with STM32CubeIDE will always need an ST-LINK or other JTAG or SWD debug probe.
The bootloader allows you to program the microcontroller with a binary image, and that's it. The IDE will happily produce such a binary image, and possibly even have a wizard for transferring it via DFU. But that's only programming, no debugging And only be when the bootloader is running. If you did debug-like things like reading RAM contents, you'd get what the bootloader stores there while it is running, not the variables that your own program uses.
The ROM bootloader supports several ways of receiving new code to flash -- USB (DFU), CAN, I2C, SPI, UART. That last is not a USB Virtual COM port, it is honest-to-God UART using the USART peripheral in the microcontroller and RX/TX pins.
If you want a virtual COM port for your custom firmware to use to send data to the PC, you have to program the USB peripheral.
I am working on an esp project and compiled my code by using the esp32s2 toolchain and created a binary that ready to run on a real device. But I don't have a real device to test my binary. Is there any simulator to simulate the ESP32-S2 chip or the ESP32 chip?
You can use Wokwi to simulate the ESP32, and soon also the ESP32-S2.The Wokwi is a free online simulator for electronics, and it runs in your browser. This means you can simulate code that interacts with 3rd-party sensors, display modules, LEDs and many other common parts. There's also initial support for WiFi simulation, and the developers are working on extending it to support connecting to any host on the internet (e.g. HTTPS/MQTT)
Simulator Examples
Arduino Examples
Blink
Seven segment counter
APA102 Color Cycles (TinyPico Board)
WiFi Scanning
MicroPython Examples
SSD1306 Example
NeoPixels
WiFi Scanning
ESP-IDF Examples
The following examples use the ESP-IDF functions. They are compiled using Arduino ESP32 Core:
Blink using FreeRTOS API
Binary LED counter using FreeRTOS tasks
GPIO button input + interrupts
https://docs.wokwi.com/guides/esp32
You can try QEMU from https://github.com/espressif/qemu or https://github.com/Ebiroll/qemu_esp32
Not sure if they are supporting ESP32-S2, but it seems to be working with ESP32.
We have device with follow configuration:
Raspberry Pi 3 with Windows 10 IoT Core
4inch HDMI LCD with touch pad
Several external devices connected to 5V, GND and GPIO pins
All the scheme consumes 12V directly and 12V separately for other devices.
The problem is: Windows IoT some times not loading, presumably because of monitor power consuming.
Is it possible to configure programmatically or via Windows Device Portal to load HDMI after Windows IoT is loaded?
First, to determine if this issue caused by HDMI. You can check if this issue caused by HDMI via disconnect the HDMI to see if the system can boot up every time. (Use Windows 10 IoT Core Dashboard application to find its IP address. Via ping its ip address or device portal to see if the system has booted up.)
If the system can't boot up when you attach the HDMI pad, you can supply the power for HDMI pad separately. There is a power supply port, something like this:
atmega 32 has only one (TX/RX) .In case of connecting many devices working with UART what should I do?....Arduino has something called software serial
Is it available in atmega 32 or how to establish it?
One may also use a multiplexer if the peripheral devices do not need to operate at the same time. This is a bit trickier to use due to baud rate changes and such but I have used this approach in one of my projects where I had a serial printer and some other devices which interfaced with the MCU via UART. The drivers for the said devices included calls to switch to the correct output on the multiplexer before communicating with the device.
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.