A couple of months ago, a friend of mine decided he wanted to build a camera gimbal (or stabiliser) for an upcoming holiday to Japan. He didn’t know where to start however on building one so came to me for help. My current paid job includes dealing with stabilised platforms on drones so I have some experience with gimbals.
I recommended the BaseCam SimpleBGC 32 as that is what I’ve used and know, plus it has a very nice GUI for configuration. However, as the gimbal is meant for hobbyist use, and cost was a factor, this platform was abandoned. After some further searching, my mate found some forums that recommended the Storm32 BGC, but once again these were expensive.
Being a proficient online shopper however, I had a look on AliExpress for some clones of both the controllers. The SimpleBGC was about a tenth of the price at approx. $12USD compared to $120USD, while the Storm32 was $20USD.
When they arrived, neither of them worked when plugged in via USB. I investigated the SimpleBGC board first, and found it was the 8bit version that ran on an Atmel MCU (I think it was an AT90 chip – I’ve since lost the board). I had a look for firmware I could upload via an Atmel AVRISP mkII, but couldn’t find any binary files.
I quickly gave up, and looked into the Storm32. While plugged in via USB the LED acted as if in normal operation, but the USB communication refused to work (meaning no device showed up at all in Windows Device Manager or Mac’s System Profiler). I had a look at the soldering to see if there were any faults, and reflowed them just in case but still no luck. I checked the official website for trouble shooting information and found the version I had (v1.4) did not officially exist, with the latest being v1.3.
I then realised the onboard microcontroller, was the same series (STM32) as I had just recently bought the official programmer for! This was great as the official software has support for uploading firmware via the programmer (the SimpleBGC seemingly only has this functionally via USB).
Programming the Storm32 in this method however, is seemingly uncommon. As such, the pins on the circuit board were not populated. So before being able to upload an official version of the firmware (which still wasn’t guaranteed to work, being a clone device), the PCB had to be modified to attach some pin headers.
With the headers attached, the ST-Link/V2 (the programmer) could be connected using the SWD protocol. Below are some diagrams on how its attached. The pins on the Storm32 are labelled, and just need matching up to those on the ST-Link/V2 (see the ST-Link/V2 manual – UM1075 for more info). I used female-female jumper wires to connect the two devices.
I then powered the Storm32 via USB (I could have also used external power leads, but that would have meant an external power supply, when I’m constrained by size on my desk), and initiated the reprogramming of the firmware to the STM32 microcontroller.
The official software could now see the device via USB. Success!
- Throughout the whole sequence there weren’t any motors attached and the external IMU sensor board was not attached.
- The attached power cable needed to be removed so a more useful connection could be used. For the gimbal designed, an AAA battery pack was used.
- A USB-to-Serial converter may have been able to be used instead of direct programming, but this would require the microcontroller’s bootloader to be fully functional (an unknown). Also, I had the programmer easily at hand, while a USB-to-serial adapter that gave TTL logic I did not (I have heaps of USB-to-serial RS232 cables).
A post about the gimbal build itself will be up when completed.
Sorry about the picture sizes, I’m just learning WordPress but from what I can find, the image control is utterly useless, its worse than MS Word! What I mean, is you can’t have multiple images on a line that when next to each other, are not the full width and thus HUGE!