Saturday, December 31, 2016

Extreme Long Range Electric Longboarding: 56km on a Boosted Board

I just returned from a 56km Boosted Board ride. I toured the bike trails along the Upper/Lower Crystal Springs Reservoirs and San Andreas Lake here in the San Francisco Bay Area. This is a new record for me. My previous range record was 27km on a single charge.

Boosted Board with external battery in my backpack :]
To achieve this I used a very large and custom designed lithium-ion battery pack. I tossed it in my backpack and connected it to the Boosted Board where I had previously made a modification to expose the internal battery voltage rail. This pack is arranged in a 10S6P (10-series, 6-parallel) configuration. It has a rated capacity of 21Ah at 37V nominal or roughly 777Wh. The internal battery of the Boosted Board has a rated capacity of 99Wh.

This battery pack is designed to attach to a custom designed board that I have been working on but is not ready for prime time yet. Below is a sneak preview of the board I am working on. I have decided to name it Voyager as one of the design goals has been to prioritize range.

10S6P battery mounted to Voyager with custom charging cable attached
Continue reading to learn more about my new record and construction of this battery pack. There are also more pictures of Voyager at the bottom of this post.

Sunday, November 6, 2016

ichargermon: a Linux/Mac iCharger monitoring tool

I use an iCharger 1010B+ to charge a few batteries for my electric skateboard. I also top up the battery in my car from time to time. I thought it would be nice to keep track of the charging progress so I wrote a small tool to parse logs that are output over UART and format them into a human-readable format.

I named the tool ichargermon. Feel free to send a pull request!

The project is written in C/C++ and has no external dependencies at this time. If I decide to support more advanced iChargers I will add libusb as a dependency.

Charging a small 3S1P battery pack
I also have an iCharger 4010Duo that I would like to add support for. The 4010Duo implements a much more rich protocol (MODBUS) that supports both remote monitoring and control.

Anyway, for now here is an example of the output. Thanks for reading!
Input voltage:    15.163V
Battery voltage:  40.165V
Battery amps:     0.990A
Internal temp:    30.300C
Cell 0 voltage:   4.009V
Cell 1 voltage:   4.010V
Cell 2 voltage:   4.012V
Cell 3 voltage:   3.998V
Cell 4 voltage:   4.014V
Cell 5 voltage:   4.014V
Cell 6 voltage:   4.014V
Cell 7 voltage:   4.014V
Cell 8 voltage:   4.017V
Cell 9 voltage:   4.019V

Thursday, February 11, 2016

VGA Generation with Freescale i.MX23 + Linux

I have long wanted to become more well acquainted with the Linux kernel and finally decided to bite the bullet. I ordered an iMX233-OLinuXino-MAXI from Olimex to tinker with. The Freescale i.MX23 processor is noteworthy because it is available in an LQFP-128 package which means it can be installed on a PCB by hand with inexpensive tools and a steady hand. It is also a great platform to learn with because it is well supported by the upstream kernel and has documentation available without signing an NDA.

The first thing I did was modify the device tree (DTS files) to enable the LCD controller and tuned it to generate a VGA signal. I built a simple R/R2 DAC on a breadboard and was able to view the image on an LCD monitor.

The projected image next to my workstation
All of this was completed under Arch Linux ARM which provides a minimal base image and root filesystem upon which a large number of packages have been ported to run on ARM. This has been a great learning experience and I plan to continue working with this chip more.

Hackaday, it doesn't quite like the 640 width
Continue reading to see the very minor changes I made to the kernel and how I wired it  all up.

Tuesday, January 26, 2016

MikMod on STM32F4

Over the past couple of days I have ported libmikmod to run on an STM32F407. This is a very memory constrained environment with only 128kB of RAM but I am able to play some rather complex MOD and XM files that are in the range of 60kB in size. I had to patch libmikmod slightly and write a new audio output driver to make all of this happen.

MikMod on STM32F4 Hardware :]
The audio quality is quite good. I currently have MikMod configured to render at 44.1kHz in mono. I could likely render in stereo but I would be limited to smaller MOD and XM files due to the increased memory usage. Here is a video that mainly shows the audio quality as captured by my camera.

The video below contains a little more technical detail, demonstration of boot and loading different audio files.