Skip to main content


Sipeed Maix Bit, a 64-bit dual core RISC-V AI development board

Sipeed MAIX is one of the cheapest RISC-V development boards in the world. It is a dual-core module capable of running at 400MHz (can be overclocked to 800MHz) and has Neural Network  Accelerators topping at 0.5 TOPS with Tensorflow Lite support. Unable to resist, I backed the  Indiegogo campaign  and received the boards couple of weeks ago. One more feature of this $12 super-spec-ed development board is that it supports MicroPython. It was time for a  "Hello World" program. Components Sipeed MAIX Bit development board USB Type-C data cable Linux Laptop (I used Arch Linux ) The development board has CH-340 chip, the infamous USB-Serial adaptor. So once you connect the USB Type-C cable to your host computer, it will be enumerated as a usb serial device. Note the  QinHeng Electronics HL-340 USB-Serial adapter. That is our Sipeed MAIX device's USB-Serial interface. Now this comes pre-programmed with the default firmware. You can find all the fir
Recent posts

Building a 49cc Street Legal Motorized Bicycle

Hello everyone! Almost 6 months ago, I moved to Oregon for my work and started looking at cheaper modes of transport to work. The transit and MAX worked for sometime but the bus stops and stations are simply too far from my home and I found myself spending at least 30 minutes everyday for a 3 mile commute to work and another 30 minutes back to home. Buying a car was not on my budget and new motorcycles were expensive too.  That is when I started looking at cheaper options like a bicycle, skateboard, electric scooter, e-bikes, segways etc. It was my dream to build an electric vehicle since my teenage. Finding an opportunity here, I started scouting for resources related to electric bikes and skateboard building. Among all the forums and resources I found online, 99% of them suggested that the batteries are expensive and the range of electric vehicles is limited.  And I stumbled upon a forum post which suggested that a motorized bike might be a better option. Though I assumed t

Programming STM32 ARM microcontrollers in Arch Linux

Once upon a time, not so long ago, the 8-bit microcontrollers were ruling the hobbyist embedded world. But today, the 32-bit ARM Cortex Microcontrollers are so inexpensive and power efficient that there is no good reason to ignore them. Here, let us see how to program a STM32 ARM cortex Microcontroller in Linux environment. The specific microcontroller used here is an STM32F103C8 (ARM cortex M3) programmed in Arch linux. Components Generic STM32F103 board (blue pill) STLINK-V2 (STM32 programmer) Female-Female connectors All the above components can be bought from ebay for less than $10 total. The STLINK-V2 is optional since you can use any of USB-SERIAL converters like FT232, CP2102, PL2303, CH340 and the built-in UART bootloader of STM32 chip to program. So if you already have any of the above serial converters, you don't really need STLINK to program the STM32F103 microcontroller. But STLINK helps if you plan to use in circuit debugging functionalities. Software The

ESP8266 - WiFi + Speech Controlled Hexapod Robot

WiFi modules for projects were out of reach for lot of budget hobbyists like me for many years. But things changed when the Esp8266 module from Espressif Systems was released in 2014. Maker community went crazy over this module for the price tag (around $2 for the basic module) and within few months, toolchains, arduino libraries and so many development boards based on Esp8266 started popping up. Esp8266 is a low cost WiFi SoC manufactured by Espressif Systems. It is a 32-bit Tensilica microcontroller with 160KB RAM, support upto external 16MB flash and tons of peripherals like Timer, PWM, UART, I2C, SPI, ADC and so on. Given the cost of the module, the maker in me couldn't resist buying at least 4 different Esp8266 modules to experiment with. The community support for Esp8266 was simply superb though I had some troubles with setting the module in boot mode.  The opportunity to use Esp8266 in a major project came in the form of course project for "Real Time Embedded

My badge Hack at Hackaday Superconference 2015

  November was a good time for many hackers and makers around and outside California who got to attend the Hackaday's Superconference 2015. Power-packed with technical workshops, project presentations and badge hacking , this Superconference was one of the best platforms for the best minds around the world. It was my first hardware conference in United States and I was super-excited to attend. The most awaited event - Badge hacking started with a blast. Right side of the presentation room were full of people who were soldering and modding their badges for the badge hacking contest. I too joined the group of geeks and started my work. What did I do?   There were tons of free development boards, components and tools available at the table for us to use in our badge. I took a teensy LC which had a 32-bit ARM Cortex M0+ freescale microcontroller powerful enough to design what I had in my mind. I had an idea of making a platform independent USB game controller which can work on an

Arietta G25 - an Atmel ARM9 board

While I own a Raspberry Pi already, I was looking for a bare minimum ARM development board capable of running Linux and offers a good amount of I/O peripherals which the R-Pi lacks. I finally stumbled upon Arietta G25, a really tiny ARM board from acmesystems. This teeny tiny board costed just $35 from . Arietta G25 Arietta G25 Features: ARM9 @ 400Mhz 128MB or 256MB DDR2 RAM UART, ADC, I2C, USB and lot more peripherals! My Setup: My laptop which will be the host here runs Arch Linux. The first step would be loading the image for Arietta in the microSD card. I downloaded Debian Wheezy Grip 7.7 image from  here  and wrote the image to a 4GB microSD card. The next step would be to setup an SSH connection between the Laptop and Arietta G25. Before that, let us disable the dhcp service in Arch Linux(Host). sudo systemctl stop dhcpcd.service If the image is correctly loaded into the microSD card, the red LED on Arietta board will start

RTL Design & Implementation of a RISC Processor and Peripheral Multiplexer -Part II

  Here is the second part of the RISC Processor Design. I have implemented this Processor as a part of my ASIC Design Lab project  "Programmable Controller/Router and Peripheral Design with peripheral I/O multiplexing".  This project focuses of peripheral multiplexing to the GPIO pins of the processor in runtime. An example case will be a Pulse Width Modulated wave switching between any I/O pins during processor execution or an UART Transmitter pin routed to a pin based on board design without the need of external multiplexers.   The processor can access the peripherals via register write instructions. Similar to register file, the peripherals support two data reads and one data write simultaneously. Since I have used custom instructions, a custom Instruction Set Architecture (ISA) is also designed. BLOCK DIAGRAM: 16-bit Instruction Format : 1. Register Instruction: OPCODE [15:12] DEST[11:8] SRC_1 [7:4] SRC_2 [3:0] 2.