GithubHelp home page GithubHelp logo

juniberry / mcfw_uv-k5_open_source_firmware Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spm81/mcfw_uv-k5_open_source_firmware

0.0 0.0 0.0 18.33 MB

Matoz Custom Firmware Based on Fagci OEFW https://github.com/fagci/uv-k5-firmware-fagci-mod and DualTachyon OEFW https://github.com/DualTachyon/uv-k5-firmware

License: Apache License 2.0

Shell 0.03% Ruby 0.08% Python 1.37% C 97.19% Assembly 0.31% Makefile 0.97% Dockerfile 0.04%

mcfw_uv-k5_open_source_firmware's Introduction

Open Source Firmware for Quansheng UV-K* Radios

An attempt to port unify as many of the many other fork's features as possible

Compile with Docker CI GitHub License GitHub issues

Warning

Use this firmware at your own risk (entirely). There is absolutely no guarantee that it will work in any way shape or form on your radio(s), it may even brick your radio(s), in which case, you'd need to buy another radio. Anyway, have fun.

For improved/better firmware and new features, you can find the following repositories by other collaborators:

Credits

Many thanks to various people on Telegram for putting up with me during this effort and helping:

Radio performance

Please note that the Quansheng UV-Kx radios are not professional quality transceivers, their performance is strictly limited. The RX front end has no track-tuned band pass filtering at all, and so are wide band/wide open to any and all signals over a large frequency range.

Using the radio in high intensity RF environments will most likely make reception anything but easy (AM mode will suffer far more than FM ever will), the receiver simply doesn't have a great dynamic range, which results in distorted AM audio with stronger RX'ed signals. There is nothing more anyone can do in firmware/software to improve that, once the RX gain adjustment I do (AM fix) reaches the hardwares limit, your AM RX audio will be all but non-existent (just like Quansheng's firmware). On the other hand, FM RX audio will/should be fine.

But, they are nice toys for the price, fun to play with.

Building

Github Codespace build method

This is the least demanding option as you don't have to install enything on your computer. All you need is Github account.

  1. Go to https://github.com/egzumer/uv-k5-firmware-custom
  2. Click green Code button
  3. Change tab from Local to Codespace
  4. Click green Create codespace on main button

  1. Open Makefile
  2. Edit build options, save Makefile changes
  3. Run ./compile-with-docker.sh in terminal window
  4. Open folder compiled-firmware
  5. Right click firmware.packed.bin
  6. Click Download, now you should have a firmware on your computer that you can proceed to flash on your radio. You can use online flasher

Docker build method

If you have docker installed you can use compile-with-docker.bat (Windows) or compile-with-docker.sh (Linux/Mac), the output files are created in compiled-firmware folder. This method gives significantly smaller binaries, I've seen differences up to 1kb, so it can fit more functionalities this way. The challenge can be (or not) installing docker itself.

Windows environment build method

  1. Open windows command line and run:
    winget install -e -h git.git Python.Python.3.8 GnuWin32.Make
    winget install -e -h Arm.GnuArmEmbeddedToolchain -v "10 2021.10"
    
  2. Close command line, open a new one and run:
    pip install --user --upgrade pip
    pip install crcmod
    mkdir c:\projects & cd /D c:/projects
    git clone https://github.com/egzumer/uv-k5-firmware-custom.git
    
  3. From now on you can build the firmware by going to c:\projects\uv-k5-firmware-custom and running win_make.bat or by running a command line:
    cd /D c:\projects\uv-k5-firmware-custom
    win_make.bat
    
  4. To reset the repository and pull new changes run (!!! it will delete all your changes !!!):
    cd /D c:\projects\uv-k5-firmware-custom
    git reset --hard & git clean -fd & git pull
    

I've left some notes in the win_make.bat file to maybe help with stuff.

Compiler

arm-none-eabi GCC version 10.3.1 is recommended, which is the current version on Ubuntu 22.04.03 LTS. Other versions may generate a flash file that is too big. You can get an appropriate version from: https://developer.arm.com/downloads/-/gnu-rm

Flashing with the official updater

  • Use the firmware.packed.bin file

Flashing with k5prog

  • ./k5prog -F -YYY -b firmware.bin

Flashing with SWD

  • If you own a JLink or compatible device and want to use the Segger software, you can find a flash loader here
  • If you want to use OpenOCD instead, you can use run "make flash" off this repo.
  • The DP32G030 has flash masking to move the bootloader out of the way. Do not try to flash your own way outside of the above methods or risk losing your bootloader.

License

Copyright 2023 Dual Tachyon https://github.com/DualTachyon

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

mcfw_uv-k5_open_source_firmware's People

Contributors

spm81 avatar joaquimorg avatar lollodev5123 avatar nrlourenco avatar nrtlourenco avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.