WCH RISC-V microcontrollers can now be programmed with the Arduino IDE

WCH RISC-V Arduino

WCH has launched some interesting RISC-V microcontrollers in the last year or so, including the “10 cents” CH32V003 RISC-V microcontroller with 2KB SRAM and 16KB flash or the CH32V307with more resources (up to 64KB SRAM and 256KB flash) and additional peripherals. So far they were programmable in C language using MounRiver IDE or an open-source toolchain, but WCH has now announced Arduino support for many of those RISC-V microcontrollers which should enable more people to get involved. The core library for CH32duino works with OpenOCD through WCH-LINKE hardware to download the firmware and debug WCH chips and a riscv-none-embed-gcc toolchain that supports custom RISC-V instructions (half-word and byte compression instruction extensions and hardware stack push/pop functions) found in WCH RISC-V microcontroller. The following evaluation kits are currently supported with ADC, DAC, USART, GPIO, EXTI, SysTick, I2C, and SPI peripherals: CH32V003F4P EVT board CH32V203G8U EVT board CH32X035G8U EVT board CH32V103R8T6_BLACK EVT […]

M5Stack releases local server implementations of UIFlow visual programming Web IDE

Visual programming local Web IDE

Visual programming is now a very popular method to teach programming to kids and M5Stack relies on UIFlow for their ESP32-based IoT development kit. Like most other companies, M5Stack provides either a Web IDE accessible from their server or a desktop program available for Windows, MacOS, or Linux, but the company has now released a local server implementation that allows users to run a Web IDE instance in their local network. The local server is available for Windows 11 x64, MacOS, Ubuntu 22.04, and Linux Arm (e.g. Raspberry Pi), so I downloaded the Ubuntu version to give it a try on my laptop. Somehow the Ubuntu release is full of Windows DLLs, but let’s ignore that for now, and the README.txt tells us to install one dependency and run the program as follows:

A window pops up letting us start or stop the server. It can be accessed with […]

Modular Mojo claims to be over 36,000 times faster than Python for AI workloads

Modular Mojo vs Python matmul

Modular Mojo is a new programming language designed for AI developers that is said to combine the usability of Python with the performance of C with over 36,000 times the performance of Python on a matrix multiplication workload. Modular Mojo programming language was not in the initial plan of the company but came about when the company’s founders – who focused on building a platform to unify the world’s ML/AI infrastructure – realized that programming across the entire stack was too complicated and also ended up writing a lot of MLIR (Multi-Level Intermediate Representation) by hand. The “over 36,000 times speedup” claim comes with the matmul.py script performing a 128×128 matrix multiplication in Python with a throughput of 0.00215 GFLOP/s and another script doing 512×512 vectorized + parallelized matrix multiplication in Mojo at 79.636 GFLOP/s. The claim looks dubious and that’s odd they used different matrix sizes, but some are […]

Wokwi – An Arduino, Raspberry Pi Pico, and ESP32 board simulator

WOKWI Arduino Raspberry Pi Pico ESP32 simulator

Wokwi is an online simulator for Arduino, Raspberry Pi Pico, and ESP32 boards, or even your own custom microcontroller board designed to learn programming without the actual hardware. My girlfriend’s daughter has just attended a free 5-day online course about AI, IoT, ESP32, MicroPython, and more organized by King Mongkut’s Institute of Technology Ladkrabang (KMITL) and IMAKE Innovation, a STEM education company in Thailand. I was told they had some homework for ESP32 as part of the course, so I asked her whether she wanted an ESP32 board. But she said no need. So then I asked how to program the ESP32 without the board, or do they have a simulator? And indeed I was sent the screenshot below along with a blurry video showing the LED display updated as the program runs in the web browser. Considering ESP32 boards are so cheap and external modules or a breadboard are […]

Review of micro:bit XGO Robot Kit – An educational robot dog with a Bluetooth joystick

micro:bit XGO robot kit review joystick

ELECFREAKS micro:bit XGO Robot Kit is a robotic dog designed for robotics education. It moves realistically and acts like a real pet dog, and can help teach various technology concepts related to mechanical engineering, electronics, programming, and artificial intelligence (AI). The kit support both the BBC Micro:bit V1 and V2 boards which can be programmed with Microsoft MakeCode, Python, the Arduino IDE, and other languages. The XGO robot is compact and can be easily used on a desk or table. The robot is made of aluminum metal coated with a beautiful anodized finish. Each leg has 12 high-quality digital servos moving each joint, 3 on each side, totaling 12, helping the robot dog to move smoothly and flexibly. The robot can be controlled with apps, a joystick, and up to 19 ready-made postures, such as holding hands, looking for food, sitting down, squatting, etc… Content of the XGO robot kit: […]

MicroBlocks is a visual programming IDE for 32-bit microcontrollers

MicroBlocks

MicroBlocks is a visual programming IDE for 32-bit microcontrollers currently supporting the BBC Micro:bit V1/V2, Calliope mini (aka the German Micro:bit), Adafruit Circuit Playground Express and Bluefruit, Raspberry Pi Pico and Pico W, and various other boards including ESP32 and ESP8266-based boards. I discovered MicroBlocks in the list of talks for FOSDEM 2023, and although it did not make it to my virtual schedule, I thought it was interesting to look into and write about it. In their upcoming FOSDEM talk, Bernat Romagosa and Kathy Giori refer to MicroBlocks as small, fast, and human-friendly with development guided by four guiding principles: liveness, parallelism, portability, and autonomy. The IDE is inspired by Scratch, and as such, looks very similar to other visual programming interfaces I have used over the years. You can launch MicroBlocks from Google Chrome or Microsoft Edge on a PC (not a mobile device) without having to install […]

ultraArm P340 Arduino-based robotic arm draws, engraves, and grabs

ultraArm P340 robotic arm draw engrave grabber

Elephant Robotics ultraArm P340 is a robot arm with an Arduino-compatible ATMega2560 control board with a 340mm working radius whose arm can be attached with different accessories for drawing, laser engraving, and grabbing objects. We’ve previously written and reviewed the myCobot 280 Pi robotic arm with a built-in Raspberry Pi 4 SBC, but the lower-cost ultraArm P340 works a little differently since it only contains the electronics for controlling the servos and attachments, and needs to be connected to a host computer running Windows or a Raspberry Pi over USB. ultraArm P340 specifications: Control board based on Microchip ATMega2560 8-bit AVR microcontroller @ 16MHz with 256KB flash, 4Kb EEPROM, 8KB SRAM DOF – 3 to 4 axis depending on accessories Working radius – 340mm Positioning Accuracy – ±0.1 mm Payload – Up to 650 grams High-performance stepper motor Maximum speed – 100mm/s Communication interfaces – RS485 and USB serial Attachment […]

Review of myCobot 280 Pi robotic arm with Python and visual programming

myCobot 280 Pi Conveyor Color Sorting

myCobot 280 Pi is a versatile robotic arm with a 6 degree of freedom design. It was developed by Elephant Robotics using the Raspberry Pi 4 board as the main controller. The robot is compact and delivers stable operation making it ideal for confined spaces. It can also be programmed in a variety of languages, is easy to use, and offers a lot of features. It is suitable for those who are interested in learning how to program a robotic arm controller and for engineering projects. Unboxing myCobot 280 Pi The myCobot 280 Pi arm has a working range of 280 mm, weighs 850 grams, and can handle a payload of up to 250 grams. It is powered by 6 servo motors, one for each degree of freedom, and comes with a 5×5 matrix LED display, and supports LEGO parts as well. Controlled by a Raspberry Pi 4 single board […]

Memfault IoT and embedded debugging platform