Close

Programming the silabs F330

A project log for Convert a brushless servo into a stepper motor

Brushless servos could have great value in pointing cameras, but only with the more precise motion of stepper motors.

lion-mclionheadlion mclionhead 10/11/2022 at 20:070 Comments

The SIL F330 is the same brain used on the Turnigy plush ESC's.  It uses the C2 interface for programming.

https://www.silabs.com/documents/public/application-notes/AN127.pdf

Commercial C2 programmers rival the cost of a better motor driver.

There is a C2 programmer for arduino that was intended to reprogram Turnigy ESC's.

http://www.olliw.eu/2012/owsilprog/?en

There's no source code & it's for windows only.  

There's diagram for connecting the F330 to the arduino.  

The programming software is buried in this link:

http://www.olliw.eu/2012/owsilprog/#firmware

Newer F330 tools have been written & are focused on just supporting blheli while the original owSilProg continues to work on Windows 10 & support any hex file.

The next step is to write the C2 programmer to the arduino.

There are a bunch of owSilProg files in the zip file, 1 of which must be written to the arduino.   The lion kingdom managed to flash the arduino with the avrburntool like this.

Then you can run blhelitool & specify any hex file you want in the hex file field.

https://drive.google.com/file/d/1bKCg5ScDbcDfRND4LSNZqrGYF8x7UkYl/view?usp=sharing

The lion kingdom backed up the owSilProg archive since it seems to be the only general purpose F330 flasher & there's a chance of it disappearing.  There are later F330 flashers which only support blheli firmware.  Interest in programming RC microcontrollers completely evaporated after DJI took over the market.  It shows how much interest was driven by a need to make money by selling quad copters rather than any interest in enhancing quad copters.

Ideally the servo firmware would be backed up, but the free programmers don't support reading.  Usually, if something hasn't been used as long as these servos, it's never going to be used.

For writing custom firmware, there's the silabs IDE for windows.

https://www.silabs.com/developers/8-bit-8051-microcontroller-software-studio

This requires installing the Keil PK51 Developer’s Kit separately.  The Keil didn't install from a network drive but did install from a local shared folder.  Once installed, you have to change the assembler, compiler, & linker paths under project->toolchain integration.  Then you have to select "generate hex file" in project->target build configuration. The hex generator is OH51.exe in the keil binary directory.  Finally, you have to save the project to save the settings.

The BLheli source code for the SIL F330 is

https://github.com/bitdump/BLHeli/blob/master/SiLabs/Turnigy_Plush_6A.inc

https://github.com/bitdump/BLHeli/blob/master/SiLabs/BLHeli.asm

It's all assembly language.

The lion kingdom just copied the silabs/mcu/examples/c8051f330_5/blinky project as a starting point.

The blinky project has a C & ASM version.  The C version uses an interrupt while the ASM version uses an infinite loop.

Like other Keil compilers, the free 8051 C compiler is restricted to 0x800 bytes.

Discussions