Skip to content

HexabitzPlatform/H07R3x-Firmware

Repository files navigation

H07R30 Module

H07R30 is an audio amplifier and speaker module based on ST TS4990 1.2W audio amplifier and STM32F0 MCU. It is part of Hexabitz modular prototyping system.

Module web page: https://hexabitz.com/product/audio-speaker-and-headphone-jack-h07r30/

  • Check the References tab in module page for links to documentation, design files, source code and examples.

  • Check the Quickstart Guide tab in module page for quick introduction on using this module.

===============================================

About Hexabitz

Hexabitz is a new kind of electronic prototyping platforms with game-changing modularity and a hint of biomimicry. Hexabitz modules connect with each other using a novel edge-soldering system and allow you to build tidy, compact and completely re-configurable electronic boards. Learn more about Hexabitz here.

===============================================

Submodules

See also other module repositories here

===============================================

How do I get set up?

If you want to load a precompiled HEX file

1- Navigate to Compiled folder and load the appropriate HEX file using any firmware update method described here.

If you want to compile the code:

1- If you don't have uVision installed already, download Keil uVision MDK toolchain from here. Get your free license for STM32F0 MCUs!

2- Download or clone this repository source code and open the uVion projext in MDK-ARM folder (it has .uvprojx extension).

3- If you are loading a single module, simply compile the code and load it to module MCU via one of the firmware update methods explaind here.

4- If you are loading multiple modules of the same type (connected in an array) and you want them to have unique firmware, then manually modify the module ID in Options for Target >> C/C++ >> Preprocessor Symbols >> Define >> _module=x (where x is the module ID) and in Output >> Name of Executable. Recompile the project and load each module according to its ID. You can also create multiple targets as explained in the firmware update guide.

You can also compile using GCC on your favorite toolchain.

How do I test?

1- If code is loaded correctly, you should see one or few indicator LED blinks when you power-cycle.

2- Use RealTerm or any other terminal emulator with a USB-to-USRT cable to access the module CLI. Learn about using the CLI here.

3- Check available CLI commands by typing help or use the module factsheet. Make sure the factsheet BOS version number (at the footer) matches the source code version you have.

How do I update the source code for an old project?

1- If your project follows portability guidelines, then just keep all files in the User folder and replace all other folders with the newer source code.

Where should I add my code?

To preseve maximum code portability between projects, we advise you to:

1- Keep all your custom source and header files in the User folder.

2- Add your code to the FrontEndTask() in main.c and add other custom functions there including custom interrupt callbacks.

3- Add any external header files you want to include to the project.h file.

4- Add any topology header files to User folder and include them in project.h.

===============================================

FAQ

Check out the FAQ tab in module page or our general FAQ section on the website. Feel free to contact us about any questions or feedback!

===============================================

Whom do I talk to?

How do I contribute?

  • We welcome any and all help you can provide with testing, bug fixing and adding new features! Feel free to contact us and share what's going on in your mind.
  • Please send us a pull request if you have some useful code to add!

===============================================

License

This software / firmware is released with MIT license. This means you are free to use it in your own projects/products for personal or commercial applications. You are not required to open-source your projects/products as a result of using Hexabitz code inside it.

To our best knowledge, all third-party components currently included with Hexabitz software follow similar licenses (MIT, modified GPL, etc.). We will do our best to not include third-party components that require licensing or have restricted open-source terms (i.e., forcing you to open-source your project). There is no guarantee, however, that this does not happen. If we ever include a software component that requires buying a license or one that forces restrictive, open-source terms, we will mention this clearly. We advise you to verify the license of each third-party component with its vendor.

Disclaimer

HEXABITZ SOFTWARE AND HARDWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE AND HARDWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE AND HARDWARE.