[go: nahoru, domu]

Skip to content
Fabio Pugliese Ornellas edited this page Jun 13, 2020 · 10 revisions

This is an showcase of projects based on libopencm3.

If you have a project based on libopencm3 please let us know so we can add it to the wiki. Get in touch either on the mailing list libopencm3-devel in the gitter channel or in IRC at #libopencm3 on Freenode network.

Audio and MIDI

multistomp: A MIDI footswitch firmware for STM32F1-series microcontrollers

Multistomp

multistomp is a firmware for STM32F1-series microcontrollers that provides USB-MIDI based switches. Typical multistomp builds are based upon footswitches providing a means to control MIDI enabled software such as loopers, guitar amp. simulators and a DAW’s play/record/stop buttons.

https://github.com/daniel-thompson/multistomp

Author: Daniel Thompson

PER|FORMER: eurorack sequencer

PER|FORMER is a eurorack sequencer module designed for both live performance and work in the studio. It is based on the concept of step sequencing and can generate a wide variety of rhythms, melodies and modulation signals. While offering a vast amount of programming options, strong focus is put on having performance critical features available as directly as possible. External MIDI controllers can be used for live recording and to control many parameters of the sequencing engine. Alternatively you can directly connect a Novation Launchpad™ to control many aspects of the sequencer. A highly configurable clock system allows the module to act both as a master clock or sync to many other modules or external gear. In the studio, the module can act as a precise MIDI to CV converter. And best of all, if you should ever get bored with music, you can play some asteroids on it too!

Built view of per|former sequencer

https://westlicht.github.io/performer/

Sokoban on F429 discovery

Demostrates a lot of the functionality of the f429 and lots of libopencm3 too! https://github.com/mastemmer/stm32f429discovery_sokoban

Bootloaders, programmers and development tools

Black Magic Probe

Black Magic Probe V2.1a

The Black Magic Probe is a modern, in-application debugging tool for embedded microprocessors. It allows you see what is going on 'inside' an application running on an embedded microprocessor while it executes. It currently supports the STM32, LM3S and LPC11xx families of ARM Cortex-M based microcontrollers. The hardware design and firmware source code are available under open-source licenses.

https://github.com/gsmcmullin/blackmagic

Author: Gareth McMullin/Black Sphere Technologies

stm32la - SUMP compatible logic sniffer

Logicsniffer

stm32la is a SUMP compatible logic sniffer, based on the STM32F4Discovery board. It supports 8 channels with a maximum sampling rate of 21MHz. It is fairly spartan with regard to triggering modes, the author describes it as "just raw code for my needs".

http://jjmz.free.fr/?p=148

Author: JJM

USB DFU - DFU bootloader with ST extensions

USB DFU

USB DFU is a DFU based bootloader. Normally it jumps directly to the main firmware but can switch to an upgrade mode if the system is reset with a specific button held down. It runs primarily on the STM32F1 series of microcontrollers but could easily be ported more widely.

https://github.com/libopencm3/libopencm3-examples/blob/master/examples/stm32/f1/stm32-h103/usb_dfu/usbdfu.c (wiki page)

Author: Gareth McMullin/Black Sphere Technologies

USB DFU 1.1

USB DFU 1.1 compliant bootloader for the "Black Pill" board: https://github.com/fornellas/3dpkbd2/tree/master/bootloader.

The bootloader itself can be programmed with dfu-utul using the ROM's DFU bootloader (press BOOT0 + RST, resease RST, release BOOT0), see the Makefile.

Once bootloader is programmed:

  • Power on, jumps to main firmware living at Sector 0.
  • On reset, bootloader code runs, allowing firmware programming with dfu-util, see Makefile.

Main firmware must use a custom ld script which points to Sector 1 address, see Makefile.

This bootloader addresses some shortcommings of the ROM bootloader:

  • Unstable behavior: enumaration will often fail on host operating system.
  • Non compliant DFU implementation: programming works with any DFU programmer, not tied to STM extensions.
  • Allows entering the bootloader with a single button press.
  • Allows dring an OLED display with programming status information.

Communications

hackrf - Open-source SDR platform

Hackrf Jawbreaker

HackRF One is a Software Defined Radio peripheral capable of transmission or reception of radio signals from 10 MHz to 6 GHz. Designed to enable test and development of modern and next generation radio technologies, HackRF One is an open source hardware platform that can be used as a USB peripheral or programmed for stand-alone operation.

http://greatscottgadgets.com/hackrf/ (github) Author: Michael Ossmann/Great Scott Gadgets (et al)

i2c-star - A clone of the i2c-tiny-usb based upon STM32

i2c-star is a compatible clone of Till Harbaum’s i2c-tiny-usb and implements an easy to use USB to I2C adapter for STM32 devices. The firmware has no software in common with the original implementation, both the USB and I2C drivers have been replaced with calls to libopencm3. Nevertheless it is protocol compatible with the i2c-tiny-usb driver found in the mainline Linux kernel and, as a result, it will work out of the box without requiring any special software on the host computer. It is ported to both the STM32F4Discovery board as well as to typical STM32F103 breakout boards (for which is includes a customized bootloader based on USB DFU).

https://github.com/daniel-thompson/i2c-star

Author: Daniel Thompson

Controllers

Open-BLDC - Open source brush less DC motor controller

Open-BLDC Strip Controller

The goal of the Open-BLDC project to create a completely Open-Source BrushLess Direct Current moto controller also known as Electronic Speed Controller.(ESC). Although still a work in progress it currently mounts off the shelf Castle Creations power stages, had hardware and software support for hardware based (comparator) BEMF control, regenerative braking and high speed (500kB/s) UART comms.

http://open-bldc.org/wiki/Open-BLDC

Author: Piotr Esden-Tempski

OpenDPS

OpenDPS is a firmware replacement for the DPS5005 (and friends) that has the same functionality, has a less cluttered user interface and is remote controllable via wifi (ESP8266) or via a serial port.

https://github.com/kanflo/opendps/

Author: Johan Kanflo

UAVs

Paparazzi UAV

Paparazzi UAV logo

Paparazzi UAV is a free and open-source hardware and software project encompassing an exceptionally powerful and versatile autopilot system for fixedwing aircrafts as well as multicopters and hybrid (VTOL) vehicles. Libopencm3 is used to support autopilot boards based on STM32 chips.

http://paparazziuav.org (github)

Authors: The Paparazzi UAV team (and community)

Things

Rastello juggling club

Rastello is an interactive juggling club, with a 9axis IMU and some LEDs.

https://hackaday.io/project/10764-rastello-club

Author: Laurent B

Micromouse - Bulebule

https://github.com/Bulebots/bulebule

demo video: https://www.youtube.com/watch?v=j0-PeUmbjP0