Archive

Posts Tagged ‘arduino’

Melon S3 FPGA Arduino & Raspberry Pi Compatible Board is Programmable over WiFi using ESP8266 WiSoC

May 25th, 2017 3 comments

Q-Wave Systems, an embedded systems company based in Thailand, has designed Melon S3 FPGA board powered by a Xilinx Spartan 3E FPGA with WiFi connectivity added through a ESP8266 module programmable with the Arduino IDE , and featuring two Raspberry Pi compatible headers. The FPGA bitstream can be updated over  WiFi, and does not require a JTAG debugger.

Melon S3 FPGA Prototype

Melon S3 FPGA specifications:

  • FPGA – Xilinx Spartan XC3S500E FPGA with 500K gates, 73Kb Distributed RAM, 4 Digital Clock Manager (DCM), 20 Multipliers (18×18), 360 Kb Block RAM
  • WiFi module – WROOM-2 with Espressif ESP8266 32-bit MCU @ 80 MHz supporting 802.11 b/g/n WiFi.
  • Storage – 4MB SPI flash in total with 1MB for ESP8266, 3 MB for FPGA
  • Expansion – 2x 40-pin Raspberry Pi compatible headers; 3.3V tolerant
  • Debugging – Onboard USB-UART Silicon Labs CP2104 for configuration, debugging and power; 6-pin JTAG port for debugging/programming
  • Misc – 8x Users LEDs, 4x DIP switch user button, 1x reset button,  on-board 50 MHz FPGA clock
  • Power Supply – 5V via micro USB port
  • Dimensions – 65 mm x 56.5 mm x 10 mm
  • Weight – 20g

Block Diagram for Melon S3 FPGA – Click to Enlarge

The board can be used in standalone, but it’s also compliant with Raspberry Pi HAT form factor, and can be inserted on top of Raspberry Pi boards with 40-pin headers, which in theory would allow you to run the Arduino IDE directly on Raspberry Pi to program Melon S3 FPGA board.

You can also program the FPGA  using development tools such as Xilinx ISE Webpack (free), MATLAB HDL Coder/HDL Verifier and National Instruments LabVIEW FPGA Toolkit, and upload the resulting bitstream using the board’s web interface.

Melon S3 FPGA Labview Programming with Raspberry Pi / Computer

The board is available via a sort of self-organized crowdfunding campaign, with at least 50 backers required by May 31. At the latest update, they had 74 backers, so the project will go ahead with mass production and shipping taking place in June. They’ll eventually post all documentation, hardware design files, and source code in Melon_S3_FPGA github repository (currently empty), but in the meantime you can get some information, including schematics in PDF, and a more details overview of the board and the way to program it in the product page in English, where you’ll also be able to order it for $79.99 plus shipping.  If you are based in Thailand, you can get it for 2,800 Baht instead.

All backers will also be invited to a free one day seminar to learn out to use the board, as long as you are ready to go to Bangkok  in Thailand.

RAK WisCam is a $20 Arduino Compatible WiFi Camera Linux Board Powered by Nuvoton N32905 ARM9 Processor

May 23rd, 2017 7 comments

A couple of weeks ago I wrote about Rakwireless’ RAK CREATOR Pro development board based on Realtek Ameba RTL8711AM Wireless MCU, and part of their Wiskey family of development boards. Sub-family include WisNode for IoT boards, WisAP for OpenWrt boards, WisPLC for PLC hardware, and WisCam for WiFi video camera boards. The company has recently introduced Wiscam RAK5281 Arduino compatible Linux board powered by a Nuvoton ARM9 MCU, and supporting a camera module or an SD card + USB module.

Click to Enlarge

RAK WisCam specifications:

  • SoC –  Nuvoton N32905R3DN ARM926EJ processor @ 200 MHz with 8KB internal SRAM, 16KB IBR internal booting ROM, 16Mbit  x16  DDR2 memory
  • Storage – 128 MBit SPI flash, included sub-module adds micro SD card
  • Connectivity – 802.11 b/g/n WiFi via Realtek RTL8189FTV module
  • Camera via sub-module
    • 648×488 pixel VGA CMOS Image Sensor (GC0308); 102° FOV
    • Video –  QVGA (320×240) 30FPS, VGA(640×480) 30FPS, MJPEG encoding
    • Photo – JPEG, 16 bits/pixel – RGB565, 32bits/pixel – ARGB8888
  • Audio – 16-bit stereo DAC; built-in microphone, speaker header
  • USB – 1x micro USB port for power and programming, USB 2.0 port via sub-module
  • Expansion – Arduino UNO compatible headers with PWM, I2C, GPIO, ADC, UART, I2S, USB2.0 HS (High-Speed)
  • Power Supply – 5V via micro USB port
  • Dimensions – 55.61mm x 55.88mm

Click to Enlarge

The board runs Linux, and support both USB UVC mode (like most webcam), and video streaming in Android, iOS, or Windows app using RTSP or Nabto P2P cloud server running on the board.  Wiscam board appears to share most of the same components as Nuvoton NuWiCam development board, so software and apps for it may also be compatible. Wiscam documentation is available in the Wiki, and hardware design files such as Altium schematics and PCB layout, as well as source code for board and mobile apps, and datasheets can be found in Github. For some reasons, they shared some of the files in a compress archivve files in github, instead of using the revision control system. Another downside, but common to most ARM9 “IP camera” SoCs, is that the board runs an ancient Linux 2.6.35 kernel.

Some has already done a short video review with the board.

RAKwireless is a startup company, but their WiFi video camera solutions are also being used in products such as Waggle 3D printer remote controller. They seem to be quite responsive, and if you have questions or remarks, they’ll certainly reply to your comments here or by emails.

RAK Wiscam board is sold on Aliexpress for $19.90 + shipping ($3.75 in my case)

Arduino Cinque Combines SiFive RISC-V Freedom E310 MCU with ESP32 WiFi & Bluetooth SoC

May 22nd, 2017 5 comments

SiFive introduced the first Arduino compatible board based on RISC-V processor late last year with HiFive1 development board powered by Freedom E310 MCU, but  the company has been working with Arduino directly on Arduino Cinque board equipped with SiFive Freedom E310 processor, ESP32 for WiFi and Bluetooth, and an STM32 ARM MCU to handle programming.

Click to Enlarge

Few other technical details have been provided for the new board, but since it looks so similar to HiFive1, I’ve come with up with preliminary/tentative Arduino Cinque specifications:

  • MCU – SiFive Freedom E310 (FE310) 32-bit RV32IMAC processor @ up to 320+ MHz (1.61 DMIPS/MHz)
  • WiSoC – Espressif ESP32 for WiFi and Bluetooth 4.2 LE
  • Storage – 32-Mbit SPI flash
  • I/Os
    • 19x Digital I/O Pins
    • 19x external interrupt pins
    • 1x external wakeup pin
    • 9x PWM pins
    • 1/3 SPI Controllers/HW CS Pins
    • I/O Voltages –  3.3V or 5V supported
  • USB – 1x micro USB port for power, programming and debugging
  • Misc – 6-pin ICSP header, 2x buttons
  • Power Supply – 5 V via USB or 7 to 12V via DC Jack; Operating Voltage: 3.3 V and 1.8 V
  • Dimensions – 68 mm x 51 mm

Image Source: Olof Johansson

The board will obviously be programmable with the Arduino IDE, something that’s already possible on HiFive5 possibly with limitations since the platform is still new. Freedom E310 SoC RTL source code is also available via the Freedom SDK.

There’s no availability nor price information, but considering HiFive1 board is now sold for $59, and Arduino Cinque may cost about the same or a little more once it is launched since it comes with an extra ESP32 chip, but a smaller SPI flash. Hopefully, it will take less time than the one year gap experienced between the announcement and the release of Arduino Due.

Top Programming Languages & Operating Systems for the Internet of Things

May 19th, 2017 3 comments

The Eclipse foundation has recently done its IoT Developer Survey answered by 713 developers, where they asked  IoT programming languages, cloud platforms, IoT operating systems, messaging protocols (MQTT, HTTP), IoT hardware architectures and more.  The results have now been published. So let’s have a look at some of the slides, especially with regards to programming languages and operating systems bearing in mind that IoT is a general terms that may apply to sensors, gateways and the cloud, so the survey correctly separated languages for different segments of the IoT ecosystem.

Click to Enlarge

C and C++ are still the preferred languages for constrained devices, and developers are normally using more than one language as the total is well over 100%.

Click to Enlarge

IoT gateways are more powerful and resourceful (memory/storage) hardware, so it’s no surprise higher level languages like Java and Python join C and C++, with Java being the most used language with 40.8% of respondents.

Click to Enlarge

When it comes to the cloud with virtually unlimited resources, and no need to interface with hardware in most cases, higher level languages like Java, JavaScript, Node.js, and Python take the lead.

Click to Enlarge

When it comes to operating systems in constrained IoT devices, Linux takes the lead with 44.1%, in front of bare metal (27.6%) and FreeRTOS (15.0 %). Windows is also there in fourth place probably with a mix of Windows IoT core, Windows Embedded, and WinCE.

Click to Enlarge

Linux is the king of IoT gateways with 66.9% of respondent using it far ahead of Windows in second place with 20.5%. They have no chart for the cloud, probably because users just don’t run their own Cloud servers, but relies on providers. They did ask specifically about the Linux distributions used for IoT projects, and the results are a bit surprising with Raspbian taking the lead with 45.5%, with Ubuntu Core following closely at 44.4%.

Click to Enlarge

Maybe Raspbian has been used during the prototyping phase or for evaluation, as most developers (84%) have been using cheap development boards like Arduino, BeagleBone or Raspberry Pi. 20% also claim to have deployed such boards in IoT solutions.

Click to Enlarge

That’s only a few slides of the survey results, and you’ll find more details about Intel/ARM hardware share, messaging & industrial protocols, cloud solutions, wireless connectivity, and more in the slides below.

Via Ubuntu Insights

ABC: Basic Connections is a Book Listing Common Circuit Diagrams for Arduino Boards (Crowdfunding)

May 19th, 2017 No comments

PighiXXX is known for their very useful and pretty pinout diagrams, but they’ve now created a book called “ABC: Basic Connections” comprised of a collection of easy to read circuit diagrams that shows you how to connect various circuits to your Arduino compatible board.

The book is in file folder format, so you can easily remove the sheets you need during your project. While you can normally find pretty much whatever circuits you need on the Internet, ABC book’s diagrams looks very neat, and since it comes with 100 A5 pages of circuit diagrams such as LEDs, decoders, shift registers, 7-segment displays, mux/demux, light bulbs, DC motors, solenoids, relays and so on,  you may discover circuits you did not know you needed. Every page of the book also comes with a 0-1.es/xx short URL redirecting to an online tutorial for the circuit with information about the theory, component list, tips, sample code, etc…

The book has been launched via Kickstarter with a $50,000 funding target. You’ll need to pledge 23 Euros to get the book sometimes in August 2017. Shippings adds 7 Euros to the US, 10 Euros to Europe, and 25 Euros to the rest of the world. While it’s a crowdfunding campaign, I’d assume the risk failure is close to zero for that project.

EduExo DIY Robotic Exoskeleton Kit is Arduino Powered, 3D Printable, Designed for STEM Education (Crowdfunding)

May 12th, 2017 1 comment

Robotic exoskeletons are used for medical purposes such as helping with the rehabilitation of stroke patients, or enable paraplegics to walk again, as well as in the work place to assist people lifting heavy objects. While it’s possible to learn about the theory about exoskeleton technology, practical experience may help grasping all concepts better. However, there are not many courses available, and exoskeletons are usually expensive, so Volker Bartenbach, PhD at ETH in Zürich, has decided to created EduExo robotic exoskeleton kit for education purpose.

The EduExo hardware is based on off-the-shelf components like an Arduino UNO board, a motor, and a force sensor, as well as a rigid exoskeleton structure and cuff interfaces. The latter is optional as you can get the kit without it, and will instead receive the STL files to 3D print the parts yourself.

There’s also a handbook to help you get started in several steps:

  1. Exoskeleton Introduction
  2. Mechanics and Anatomy – Theory + instructions to assemble the kit
  3. Electronics and Software –  Theory + instructions to connect electronic components and write basic software with the Arduino IDE
  4. Control Systems  – Theory explaining the behavior of the exoskeleton, and step by step instructions to implement and test the control systems with the kit.
  5. Virtual Reality and Video Games – Learn how to create a computer game, connect the exoskeleton to your computer (Windows PC) and use it as a game controller. The demo relies on Unity 3D engine
  6. The Muscle Control Extension – You can reproduce your arm movements with the kit using an electromyography-EMG sensor (sold separately)

One you’ve gone through the handbook, you should understand the basics of exoskeletons, and maybe try develop your own algorithm or programs. Note that’s it’s just an educational device, it’s not powerful enough to provide any kind of support.

EduExo has been launched on Kickstarter with a 8,000 CHF ($7,939 US) funding goal. A 15 CHF pledge will get you the e-handbook only. If you have a 3D printer and most of the components, 30 CHF should get you the handbook, 3D STL files, and the components list. A full kit with all parts and a printed handbook requires a 165 CHF pledge (early bird). If you want to play with the Muscle Control Extension part, you’d need to spend $250 for the full kit plus the EMG sensor. You may also learn more about the educational kit and exoskeletons in general on EduExo website.

Via Arduino blog

$8.80 RAK CREATOR Pro Ameba RTL8711AM WiFi IoT Board Comes with 2MB SDRAM, Up to 64MB SPI Flash

May 11th, 2017 9 comments

Realtek Ameba is a family of WiFi ARM Cortex M3 micro-controllers for IoT applications, and RTL8710AF got some buzz last year, as modules would sell as low as $2, hereby competing with ESP8266 in terms of price. While the solution was interesting, the community activity around the solution has been slow as ESP8266 already have the community and software support. Other Realtek RTL8195AM and RTL8711AM processors offer much more memory, but at the time, price was not as attractive with Ameba Arduino board based on RTL8195AM selling for $25. But there’s now a new Arduino compatible board made by ShenzhenRAK Wireless Technology (RAK) that comes with RTL8711AM processor with 1MB ROM, 2MB SDRAM, 512KB SRAM, and up to 64MB SPI flash, and sells for just $8.80 + shipping on Aliexpress.

CREATOR Pro (Wiskey) board specifications:

  • WiFi Module – RAK473 with Realtek RTL8711AM ARM Cortex M3 MCU @ 166 MHz, 1MB ROM, 2MB SDRAM, 512KB SRAM
  • External Storage – Up to 64MB SPI flash (unclear how much is installed by default if any).
  • Connectivity – 802.11 b/g/n WiFi 1×1 with PCB antenna on module, up to 400 ~ 500 meters range
  • USB – 1x micro USB port for power and programming
  • Expansion – Arduino UNO compatible header with I2C, digital IO, Analog inputs, UART, GPIOs, 3.3V, 5V, and GND
  • Debugging – JTAG/SWD header
  • Misc – WPS, Easyconfig, N/R, T/R and reset buttons; configuration jumpers
  • Power Supply – 5V via micro USB port.

The board can be programmed with a fork the Arduino IDE called CREATER IDE. There is a lot of documentation available in the Wiki and download section, but only for RAK473 module. I did not find much specific to WisKey or CREATOR board even in their github account. In case you have questions, they have a support center / forum in English. The company also explains that due to memory constraints in RTL8710AF processor, you have to choose between web server, SSL, MQTT or MDNS functions, while RTL8711AM can run all four simultaneously thanks to the 2MB SDRAM. Other hardware differences are shown in the table below.

RAK473 module itself is sold for $5 + shipping in single unit. RAKWireless is also doing all sorts of other WiFi, LoRa, and WiFi video/camera modules, as well as some other Wiskey boards. You may want to check their website for details.

Via RTL8710 Forum.

Getting Started with ESP32-Bit Module and ESP32-T Development Board using Arduino core for ESP32

May 7th, 2017 16 comments

Espressif ESP32 may have launched last year, but prices have only dropped to attractive levels very recently, and Espressif has recently released released ESP-IDF 2.0 SDK with various improvements, so the platform has become  much more interesting than just a few weeks ago. ICStation also sent me ESP32-T development board with ESP32-bit module, so I’ll first see what I got, before trying out Arduino for ESP32 on the board.

ESP32-T development board with ESP-bit Module – Unboxing & Soldering

One thing I missed when I asked for the board is that it was not soldered, and it comes in kit with ESP32-bit module in one package, and ESP32-T breakout board with headers in another package.

Click to Enlarge

The 21.5x15mm module is based on ESP32-DOWNQ6 processor with 32 Mbit (4MB) of flash, a chip antenna, and a u.FL connector.

Click to Enlarge

The module is apparently made by eBox, and also used in Widora board with all information (allegedly) available on eboxmaker.com website, but more on that later.

Click to Enlarge

ESP32-T breakout board comes with a micro USB port for power and programming/debugging via Silabs CP2102 USB to TTL brige, a power LED, a user LED (LED1), a reset button, and a user button named “KEY”. It has two rows of 19-pin headers, and a footprint for ESP32-Bit module.

Click to Enlarge

The back of the board has a footprint for ESP-32S and ESP-WROOM-32 module, which gives the board some more flexibility, as you could try it with various ESP32 modules.

Time to solder the kit. I placed ESP32-Bit on ESP32-T, and kept it in place with some black tape to solder three to four pins on each side first.


I then removed the tape, completed soldering the module, and added the headers.

Click to Enlarge

The final step is to cut the excess pin on the headers, and now we can test the board which I could insert in a breadboard after pushing with some tools…

I connected a micro USB to USB between the board and my computer, and quickly I could see the PWR LED with a solid green, and LED1 blinking.

I could also see a new ESSID on my network: ESP32_eBox, and I could just input the… wait, what is the password? No idea. So I went to the board’s website, and everything is in Chinese with very limited hardware and software information on the ESP32 page. So it was basically useless, and I did not find the password, and other people neither. I asked ICStation who provided the sample, but they were unable to provide an answer before the review.

I could see the serial ouput via /dev/ttyUSB0 (115200 8N1) in Ubuntu 16.04:

Arduino core for ESP32 on ESP32-T (and Other ESP32 Boards)

But nothing really useful. Since the website mentions Arduino, I just decided to go with Arduino core for ESP32 chip released by Espressif, which explains how to use Arduino or PlatformIO IDEs. I opted to go with the Arduino IDE. The first thing is to download and install the latest Arduino IDE.

I’m running Ubuntu on my computer, so I downloaded and installed the Linux 64-bit version:

The next commands install the Arduino ESP32 support and dependencies:

We can now launch the Arduino IDE:

There are several ESP32 to choose from, but nothing about ESP32-T, ESP32-Bit, or Widora. However, I’ve noticed the board’s pinout looks exactly the same as ESP32Dev board shown below.

Click to Enlarge

So I selected ESP32 Dev Module, and set /dev/ttyUSB0 upload speed to 115200.

Click to Enlarge

The next step is to find an easy example to check if everything works, and there are bunch of those in File->Examples, Examples for ESP32 Dev Module section.

Click to Enlarge

I selected GetCHIPID sample, as it just retrieve the Chip ID from the board, and as we’ll see later the Chip ID is actually the MAC Address. I could upload the code, and it indeed returned the Chip ID:

The next sample I tried – WiFi->SimpleWiFiServer – will allow you to test both WiFi connectivity and GPIOs. I modified the sketch to use pin 2 instead of pin 5  in order to control LED1 on the board connected to GPIO2. You’ll also need to set the SSID and password to connect to your WiFi network. Once you’ve compiled and uploaded the sketch to the board, you’ll need to find the board’s IP address. You can do so in your router DHCP list with the board named “espressif” by default, and the MAC address will be the same as the CHIP ID, 24-0A-C4-01-A4-24 in my case. Now you can open the web interface in a web browser to turn on and off LED1 green LED on the board.

You could also use directly http://IP_ADDRESS/H or http://IP_ADDRESS/L to pull the pin high or low. It worked beautifully, but so far, we have not done anything that does not work on the much cheaper ESP8266 boards, and I can see one Bluetooth LE code sample for ESP32 called simpleBLEDevice in Arduino IDE, so let’s try it. It will just broadcast advertise the name of the device, and change it on button press, which could be used to broadcast message to a BLE gateway.

That’s the output from the serial terminal.

The initial name is ESP32 SimpleBLE, and as I press the KEY button on the board, the name will change to “BLE32 at: xxx”. I could detect a Bluetooth ESP32 device with the various names with my Android smartphone.

Since, it’s just advertising the name, there’s no pairing. But that’s a start. To have more insights into Bluetooth, you may also want to check out WiFiBlueToothSwitch.ino sample which shows show to use various mode such as Bluetooth only, Bluetooth + WiFi, WiFi STA, etc… For a more practical use of Bluetooth on ESP32, Experiments with Bluetooth and IBM Watson article may be worth a read. But a faster dual core processor and Bluetooth support are not the only extra features of ESP32 compared to ESP8266, as you also get more GPIOs, hardware PWM, better ADC, a touch interface, a CAN bus, Ethernet, etc…, so there’s more to explore, although I’m not sure all features are fully supported in ESP-IDF SDK and Arduino.

Final Words about ESP32-T and ESP32-Bit

After some initial difficulties, and confusions, I managed to make ESP32-T development kit work, but it’s difficult to recommend it. First, documentation is really poor right now, and while I found out you can use the exact same instructions than for ESP32Dev board, it does not reflect well on the company. Second, the board is sold as a kit that needs to be soldered, which may be a hassle for many, and possibly a fun learning experience for a few. Finally, ESP32-T + ESP32-Bit sells for $15 to $20 on various website, which compares to competitors fully assembled development boards – such as Wemos LoLin32 – now going for less than $10 shipped, and which basically the same features set (ESP32 + 4MB flash) minus the user LED and button, and a u.FL connector for an external antenna.

I’d still like to thank ICStation for giving me the opportunity to test the board. They are now selling it for $14.99 shipped with 15% extra discount possible with Jeanics  coupon (for single order). You’ll also find ESP32-T board on Aliexpress, but pay close attention if you are going to buy there, as it may be sold without ESP32-Bit module. Usually, all prices well below $10 are without the module.