Custom firmware for Quicko and KSGER T12 soldering stations

Overview

STM32 Soldering Station Firmware


Video of operation here: (Project in active development, the features will change continuously)

IMAGE ALT TEXT


Developing not only takes time, but also costs money.
When something goes wrong, the results are usually destructive: Tips / handle burning down, sometimes causing damage to the controller.

If you want to support the project, check my Paypal donation page. Thanks!
IMAGE ALT TEXT


Project details

  • This project started by forking PTDreamer's firmware. Since then it became a separate project.
  • Developed on STM32Cube IDE. Basic configuration is easily done in CubeMx (Included in STM32Cube IDE).
  • Unified codebase, different hardware support based on profiles, very few files need to be changed.
  • Supports all display modes: I2C, SPI, software and hardware+DMA (When connected to hardware pins).
  • Extremely customizable, lots of options.
  • Code highly optimized to avoid unnecesary processing waste, so slow devicers still run great.

Compatibility

The actual requirements are 10KB RAM and 64KB flash. Don't even try if your MCU has less than that.
The BOARDS folder has the board code profile, schematics and/or board pictures for quickly identify your hardware.
Actually all the KSGER boards are supported. Some have not been tested yet and need feedback from users.
These board profiles are being tested:

  • Quicko T12 [STABLE]: Profiles compatible with any STM32F072xx and STM32F103xx.
  • JCD T12 [STABLE]: Different board layout, but it's 100% the same as the KSGER v2.1. Use that firmware.
  • KSGER v1.5 [TESTING]: Recently added. Not tested yet.
  • KSGER v2.0 [TESTING]: Seems to use the as the 2.1. Use that firmware, not tested yet.
  • KSGER v2.1 [STABLE]: Profile compatible with all STM32F101/2/3xx. Use 101C8 profile.
  • KSGER v3.0 [TESTING]: Seems to use the same as the 3.1. Use that firmware, not tested yet.
  • KSGER v3.1 [STABLE]: Profile compatible with all STM32F101/2/3xx. Use 101C8 profile.

Frequently asked questions

First, make sure to read the Operations guide!

Backing up the original firmware

Be warned, usually the MCU will be read-protected, so you won't be able to read its contents, only erase it.
For KSGER boards, some can be found over internet.
The simplest way to not loose the original FW is actually to buy a new MCU, replace it, and store the original MCU in a safe place.
Any difference in the pinout will require firmware tuning, although one of the main proposits of this firmware is easing that.
There are some hacks / vulnerabilities that can be used to backup protected firmware, more details here:
STM32 power glitching timing attack

Flashing the firmware

Download the binary STM32SolderingStation.bin already compiled from the /BOARDS folder and flash it using stlink.
There's no support for custom bootloaders, and there won't be, as flash is almost full in 64KB devices.
Use one of these ST-LINK clones ($3 or less), refer to the schematics for the SWD pinout.

Display issues

If the display has right/left line like this picture: Go to System menu / Offset and adjust the value until it's centered.

Temperature unstability

By default, never modify any PWM / Delay settings in the Iron menu. Doing so may cause such issues.
Also, new tips are often unstable, leading to temperature jumps.
Don't try to calibrate the tip in this state, neither set a high temperature, because it could go under control.
They usually settle after some burning time. It's recommended to set a medium temperature (250-300ºC) and leave like that for 15-20 minutes until it stabilizes.
If the temps are still unstable, try increasing the Iron/Delay option, allowing more time for the temp signal to settle.
A damaged, loose or defective connection in the handle will also cause this issues. Ensure the contacts are clean.
There have been problems with some board/stations like:

  • Noisy power supply
  • Broken / badly soldered capacitors
  • Bad Op-Amp
  • Bad 3v3 Regulator

Temperature accuracy

Buying a cheap high temperature meter is highly recommended!
These boards can have pretty different readings and tolerances. Even between T12 tips.
So the factory calibration is intentionally set lower than real, to avoid possible overheating problems.
Once you set the firmware, go to calibration and set there the real temperature measured with the external probe.

Calibration issues

Ensure to read Calibration menu first!.
To calibrate, go into Calibration / Start.
If the difference between measured and real is more than 50ºC, the calibration will be aborted, telling you to go into Calibration / Adjust.
The calibration adjustment menu has two fields: Calibration step (250, 350, 450ºC), and the internal value associated to each step.
Once you enter this menu, the value will be applied in real time, so be careful!
Attach a temperature probe to the tip before adjusting anything!
If you got higher temperatures, it's recommended to lower the value quicky to prevent tip overheating.
Then, slowly rise the values until it gets close to the calibration target. Repeat for each step and save.
This values are only used by the calibration process, to prevent burning the tip if your board reads too lower than real.
After adjusting, repeat calibration, this time it should work right away.
The calibration results for the current tip can be seen in the tip settings menu.
In the case you lose, wipe or reset the data, you can go back into that menu and adjust the values based on previous calibration results.
Otherwise, they aren't meant to be another calibration menu! Only for viewing (Ex. reporting calibration results) and making backup/restore of the values.

Other issues

After fully reading the documentaion, if you still have problems or doubts, please ask in the EEVblog thread:
https://www.eevblog.com/forum/reviews/stm32-oled-digital-soldering-station-for-t12-handle


Building

Video of building steps:
IMAGE ALT TEXT

If you use an existing project template and modify it, the changes must be reflected in /Core/Inc/board.h.
All the project code takes the data from there. The file it's pretty much self-explaining.
So, any changes you make in CubeMX, ex. use PWM timer6 intead timer2, or SPI1 instead SPI2...all that should be configured in their respective define.
As long as the GPIO names are called the same way, no further changes are needed.

If you want to build your own, clone or download the source.
The source is stripped from ST own libraries and unnecesary stuff, only includes the very basic code owning to the project.
CubeMX will add the STM32 and CMSIS libraries automatically after a code generation.
Open the BOARDS folder, find your board (or take any to work with) and copy all the contents to the root of the project.
Now you're ready to open STM32CUBE IDE and import the project.
Open the .ioc file, make any small change, ex. take an unused pin and set is as GPIO_Input, then revert it to reset state.
This will trigger the code generation. Close saving changes and the code will be generated. And it's ready for building.
CubeMX should care of adding the new folders to the search path, if it fails follow this steps.
Right click on project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> MCU GCC Compiler -> Include paths
On the upper menu, Configuration, Select [All configurations]
Click on Add... Select Workspace and select these folder while holding Control key:
Ensure these are present:

  /Core/Inc
  /Core/Src
  /Drivers/generalIO
  /Drivers/graphics
  /Drivers/graphics/gui    
  /Drivers/graphics/u8g2
  /Drivers/STM32Fxxx_HAL_Driver/Inc
  /Drivers/STM32Fxxx_HAL_Driver/Inc/Legacy
  /Drivers/CMSIS/Device/ST/STM32Fxxx/Include
  /Drivers/CMSIS/Include

(STM32Fxxx matches your current mcu family, ex. STM32F0xx, STM32F1xx)

Click in the right arrow of the build button (Hammer icon), select Release, then click on the build button and should build right away.

Keep in mind that in 64KB devices the flash is almost full and will not fit unless optimization is set to "Optimize for size".
To debug MCUs where the flash space is unsufficient to store a unoptimized build, you can selectively disable build optimizations.
A line of code can be found at the start of main.h:

attribute((optimize("O0")))

Copy that line before the function like this:

attribute((optimize("O0"))) void ThisFunctionWillNotBeOptimized(...)

If you want to retarget the project, avoid mixing different profile files.
Run the included script "Clean_Profile.bat", or manually delete these files:

/Core/Inc/*stm32*
/Core/Src/*stm32*
/Core/Src/system_stm32*
/Core/Startup/*

And then copy the board profile files overwriting any existing files.


Non working features

  • I2C eeprom. Some boards have it, some doesn't. So internal flash storage is used for all.
  • RTC clock. There's very little space in the screen. Use it for what matters, instead showing a clock!

Additional Documentation

Comments
  • Проблема с энкодером на KSGER v3.x

    Проблема с энкодером на KSGER v3.x

    GhbПри прокручивании энкодера в одну сторону, курсор в меню сначала идет в верном направлении, после меняет направление. Также это замечено при изменении любых параметров. Если вращать медленно по одному щелчку, проблемы нет. Но стоит немного увеличить скорость вращения проблема повторяется.

    opened by Alex-TV 6
  • Shake wake sensitivity too high

    Shake wake sensitivity too high

    Hi!

    I'd like my device to stay in sleep mode until I actually move the soldering pen, so I set it to "Wake mode: SHAKE". This works, but it works a bit too well. If I just nudge my desk very gently, the sleep is interrupted. Is there any way to decrease the shake sensitivity? Maybe some debounce logic could help?

    opened by zyonee 6
  • Unknown Board rev. v2 / v3 mixup

    Unknown Board rev. v2 / v3 mixup

    I've just ordered from the "KSGER Official Store" of AE an "KSGER STM32 V 3,1" Unfortunately it came delivered with an MM32Spin, which is incompatible with your custom firmware.

    I came across your eevblog-forum post (https://www.eevblog.com/forum/reviews/stm32-oled-digital-soldering-station-for-t12-handle/msg4286710/#msg4286710), that it is possible to replace the mm32 with an genuine stm32.

    My problem is, that I can't tell which version of solderingstation I got. 6 Pin means OLED but the controlboards hast v.20 printed on it and there is no V2 OLED-Version of the firmware. What version of your firmware should I use? :)

    Thanks!

    IMG_8293 IMG_8295

    opened by kinoX51 4
  • Battery backup, addons, settings rework and more

    Battery backup, addons, settings rework and more

    These commits contain:

    • "addon" screen
      • addon for fume extractor control
      • addon for switch off reminder
    • removal of unused code parts
    • reworked settings storage
      • moved erase/write to separate functions
      • allocate well defined areas
    • bugfix for sleep mode with lower set temp
    • storing active profile, iron temp, selected tip in backup ram if enabled
    • option to disable saving of the last used profile/tip/temp
    • shift the temp display 1 pixel down to better handle dual color oleds
    • hiding the iron_t structure and expose the members in getters/setters
    • separate the "user" code parts from main.c/h into user_main.c/h
    opened by KocsisV 3
  • Different Chip on the T12 board. Will it be compatible?

    Different Chip on the T12 board. Will it be compatible?

    Hi

    I got my KSGER T12 Mini earlier last month. Used it for a bit (very light workload aka testing on wires, twice) and then wanted to update the software and came accross this project. So got myself a ST-Link and opened up the T12 to check for pins and which chipset was on it.

    Imgur Link: Ksger T12

    I found the chipset labelled "ARM MM32SPIN 27PF 76508-p5 G3H6 016" and not a STM32. I tried googling, but couldn't find any useful information on the chipset.

    Will this project be compatible, if so which firmware image should I flash?

    Have a great day xD

    Warm Regards Benjamin

    opened by benjaminjacobreji 3
  • quecoo t12-955 nothing in display after flashing firmware

    quecoo t12-955 nothing in display after flashing firmware

    I just downloaded

    https://github.com/deividAlfa/stm32_soldering_iron_controller/blob/master/BOARDS/Quicko/STM32F103/STM32SolderingStation.bin

    and flashed with stm32cube but nothing displays after reboot controller. Using backup from repo works well so wiring st-link I suppose is ok.

    IMG_4324

    IMG_4323

    opened by jducifuentes 3
  • Issues upgrading using STM32CubeProgrammer

    Issues upgrading using STM32CubeProgrammer

    I have a KSGER 2.0 and 3.0 on which I've successfully installed this great firmware aprox. half a year ago.

    Today, I wanted to upgrade them to the latest release. But I'm having issues uploading the firmware using Linux (Manjaro). It's the same hard- and software I used for the initial install (read/write protection is still disabled).

    I've also used this for different other STM32 MCUs, so I'm pretty sure the setup should be fine.

    Still, this time I get an error (see last line below).

    I wanted to keep my calibration data, so I've skipped erasing all data. I did NOT try it with erasing all data, yet. Wanted to ask first if there is any idea what to do?

    screenshot_20220715_121539

    12:06:46:555 : ST-LINK SN  : 48FF6E066770545657271967
    12:06:46:555 : ST-LINK FW  : V2J39S7
    12:06:46:557 : Board       : --
    12:06:46:559 : Voltage     : 3,27V
    12:06:46:576 : SWD freq    : 4000 KHz
    12:06:46:576 : Connect mode: Normal
    12:06:46:576 : Reset mode  : Software reset
    12:06:46:576 : Device ID   : 0x410
    12:06:46:576 : Revision ID : Rev X
    12:06:46:588 : flash loader /opt/stm32cubeprog/bin/FlashLoader/0x410.stldr is loaded
    12:06:46:588 : Debug in Low Power mode is not supported for this device.
    12:06:46:589 : Reading data...
    12:06:46:589 : r ap 0 @0x1FFFF7E0 0x00000004 bytes Data 0xFFFF0040
    12:06:46:710 : UPLOADING OPTION BYTES DATA ...
    12:06:46:711 :   Bank          : 0x00
    12:06:46:711 :   Address       : 0x4002201c
    12:06:46:711 :   Size          : 8 Bytes
    12:06:46:711 : Reading data...
    12:06:46:711 : r ap 0 @0x4002201C 0x00000008 bytes Data 0x03FFFFFC
    12:06:46:711 :   Bank          : 0x01
    12:06:46:711 :   Address       : 0x1ffff800
    12:06:46:711 :   Size          : 16 Bytes
    12:06:46:711 : Reading data...
    12:06:46:711 : r ap 0 @0x1FFFF800 0x00000010 bytes Data 0x00FF5AA5
    12:06:46:711 : UPLOADING OPTION BYTES DATA ...
    12:06:46:711 :   Bank          : 0x00
    12:06:46:711 :   Address       : 0x4002201c
    12:06:46:711 :   Size          : 8 Bytes
    12:06:46:711 : Reading data...
    12:06:46:711 : r ap 0 @0x4002201C 0x00000008 bytes Data 0x03FFFFFC
    12:06:46:711 :   Bank          : 0x01
    12:06:46:711 :   Address       : 0x1ffff800
    12:06:46:711 :   Size          : 16 Bytes
    12:06:46:711 : Reading data...
    12:06:46:711 : r ap 0 @0x1FFFF800 0x00000010 bytes Data 0x00FF5AA5
    12:06:46:727 : UPLOADING ...
    12:06:46:727 :   Size          : 1024 Bytes
    12:06:46:727 :   Address       : 0x8000000
    12:06:46:727 : Read progress:
    12:06:46:727 : Reading data...
    12:06:46:732 : r ap 0 @0x08000000 0x00000400 bytes Data 0x20002800
    12:06:46:732 : Data read successfully
    12:06:46:732 : Time elapsed during the read operation is: 00:00:00.006
    12:07:02:859 : Memory Programming ...
    12:07:02:859 : Opening and parsing file: KSGER_V3_OLED.bin
    12:07:02:859 :   File          : KSGER_V3_OLED.bin
    12:07:02:860 :   Size          : 85,51 KB 
    12:07:02:860 :   Address       : 0x08000000 
    12:07:02:860 : Download in Progress:
    12:07:02:862 :   Size          : 87564 Bytes
    12:07:02:862 :   Address       : 0x08000000 
    12:07:02:862 : Buffer program...
    12:07:02:862 : halt ap 0 
    12:07:02:863 : w ap 0 reg 15 PC   (0x20000000)  
    12:07:02:863 : w ap 0 reg 17 MSP  (0x20000500)  
    12:07:02:863 : w ap 0 reg 16 xPSR (0x01000000)  
    12:07:02:866 : w ap 0 @0x20000960 0x00000200 bytes Data 0x00000000
    12:07:02:867 : w ap 0 @0x20000000 0x00000004 bytes Data 0x0000BE00
    12:07:02:885 : w ap 0 @0x20000004 0x0000053E bytes Data 0xF000B580
    12:07:02:885 : Loader write range...
    12:07:02:930 : w ap 0 @0x20000960 0x00002200 bytes Data 0x20002800
    12:07:02:930 : W B1 in RAM @0x20000960 size 0x00002200 : 0058ms
    12:07:02:930 : Init flashloader...
    12:07:02:932 : halt ap 0 
    12:07:02:932 : w ap 0 reg 0 R0   0x00000001
    12:07:02:932 : w ap 0 reg 1 R1   0x00000000
    12:07:02:932 : w ap 0 reg 2 R2   0x00000000
    12:07:02:933 : w ap 0 reg 3 R3   0x00000000
    12:07:02:933 : w ap 0 reg 4 R4   0x00000000
    12:07:02:933 : w ap 0 reg 5 R5   0x00000000
    12:07:02:934 : w ap 0 reg 6 R6   0x00000000
    12:07:02:934 : w ap 0 reg 7 R7   0x00000000
    12:07:02:935 : w ap 0 reg 8 R8   0x00000000
    12:07:02:935 : w ap 0 reg 9 R9   0x00000000
    12:07:02:935 : w ap 0 reg 10 R10  0x00000000
    12:07:02:936 : w ap 0 reg 11 R11  0x00000000
    12:07:02:938 : w ap 0 reg 12 R12  0x00000000
    12:07:02:938 : w ap 0 reg 13 SP   0x00000000
    12:07:02:938 : w ap 0 reg 14 LR   0x20000001
    12:07:02:938 : w ap 0 reg 15 PC   0x20000005
    12:07:02:939 : w ap 0 reg 16 xPSR 0x01000000
    12:07:02:953 : w ap 0 reg 17 MSP  0x2000093E
    12:07:02:954 : w ap 0 reg 18 PSP  0x00000000
    12:07:02:954 : run ap 0 
    12:07:02:955 : halt ap 0 
    12:07:02:955 : r ap 0 reg 0 R0   0x00000001
    12:07:02:955 : w ap 0 reg 0 R0   0x08000000
    12:07:02:955 : w ap 0 reg 1 R1   0x00002200
    12:07:02:955 : w ap 0 reg 2 R2   0x20000960
    12:07:02:955 : w ap 0 reg 3 R3   0x00000002
    12:07:02:955 : w ap 0 reg 4 R4   0x00000000
    12:07:02:955 : w ap 0 reg 5 R5   0x00000000
    12:07:02:955 : w ap 0 reg 6 R6   0x00000000
    12:07:02:955 : w ap 0 reg 7 R7   0x00000000
    12:07:02:955 : w ap 0 reg 8 R8   0x00000000
    12:07:02:955 : w ap 0 reg 9 R9   0x00000000
    12:07:02:955 : w ap 0 reg 10 R10  0x00000000
    12:07:02:955 : w ap 0 reg 11 R11  0x00000000
    12:07:02:955 : w ap 0 reg 12 R12  0x00000000
    12:07:02:955 : w ap 0 reg 13 SP   0x00000000
    12:07:02:955 : w ap 0 reg 14 LR   0x20000001
    12:07:02:955 : w ap 0 reg 15 PC   0x2000002F
    12:07:02:955 : w ap 0 reg 16 xPSR 0x01000000
    12:07:02:955 : w ap 0 reg 17 MSP  0x2000093E
    12:07:02:955 : w ap 0 reg 18 PSP  0x00000000
    12:07:02:955 : run ap 0 
    12:07:03:006 : w ap 0 @0x20002B60 0x00002200 bytes Data 0xFEC8F002
    12:07:03:006 : W B2 in RAM @0x20002B60 size 0x00002200: 0075ms
    12:07:03:007 : r ap 0 reg 0 R0   0x00000000
    12:07:03:007 : halt ap 0 
    12:07:03:007 : w ap 0 reg 15 PC   (0x20000000)  
    12:07:03:008 : w ap 0 reg 17 MSP  (0x20000500)  
    12:07:03:008 : w ap 0 reg 16 xPSR (0x01000000)  
    12:07:03:009 : Loader write range...
    12:07:03:067 : w ap 0 @0x20000960 0x00002200 bytes Data 0x20002800
    12:07:03:068 : W B1 in RAM @0x20000960 size 0x00002200 : 0058ms
    12:07:03:071 : halt ap 0 
    12:07:03:072 : r ap 0 reg 0 R0   0x00000000
    12:07:03:073 : Error: failed to download Segment[0]
    12:07:03:073 : Error: failed to download the File
    
    opened by fiechr 2
  • KSGER v3 board overheat and keep in reboot loop

    KSGER v3 board overheat and keep in reboot loop

    Hello,

    I would like to thank you for your great efforts for this awesome firmware. I downloaded this firmware image to my KSGER v3 station successfully, but when setting up the first run values. the iron tip starts heating up to 180 degrees (the default min value) and stays there. If i try to increase the temperature the system reboots and the back of the board becomes very hot to touch. near the mosfet/mcu area.

    I got the stm32f103cbu6 variant.

    any suggestions?

    Thank you

    opened by Unitarian 2
  • adding support for STM32F103RBTX (64pins) MCU for KSGER HW3.10 PCB

    adding support for STM32F103RBTX (64pins) MCU for KSGER HW3.10 PCB

    Adding support for STM32F103RBTX (64pins) MCU for KSGER HW3.10 PCB.

    Currently the project supports STM32F101(48Pins) mcu for this KSGER HW3.10 (or black color OLED 3.0) PCB, and the build file is also compatible with the F103RB (64Pins) mcu, however since quite many KSGER pcb do have the F103(64Pins) mcu and not the F101, maybe it's better to just make it support it, the 64pin F103.

    How: All GPIO and ADC, and I2C , debug pin etc are the same as the F101 version setting (from BOARDS\KSGER[v3]\STM32F101 ) . clock setting is changed a bit accordingly.

    Test: clear project then Copy all files from the board/F103 folder to the project root fold like other board project files, change a pin and change back as usual to let it generate code, and it compiles and builds, loaded to my KSGER OLED black 3.0 (with MCU STM32F103RB 64Pin), everything works well, including encoder, OLED and tip temperature and calibration etc.

    opened by ntchris 2
  • Added Swedish translation

    Added Swedish translation

    Fonts have been edited to support Swedish/Finnish. Gui-strings have been translated to Swedish. "SE"-option added to bootscreen and system. Some other minor adjustments which might be considered.

    opened by AndyC52 2
  • Ksger SMD Rework Station

    Ksger SMD Rework Station

    Hi! I have smd rework station hot air gun by Ksger and it have 1.06 firmware. I see on your github 1.1 version firmware, as original firmware. What the difference between theese versions and could i flash 1.1 instead my own 1.06? Also i want ask, is it possible to change colding temperature to 50° instead of 100° (when i put gun on stand or push off button on backside of station)? Thank you!

    opened by DJ-URAN 1
Releases(v1.07.3)
Owner
null
General purpose power controller, capable of driving soldering irons using different voltages and probe types.

All-purpose Power Micro Controller This general purpose power micro controller features: Wheatstone Bridge front-end New Texas Instruments INA823 inst

Tomasz Jastrzębski 30 Dec 3, 2022
A soldering pen with quick charger.

T12-PD-SolderingPen 使用atmega328p作为主控芯片,128x64 OLED屏幕,内置陀螺仪和蜂鸣器。能够读取控制部分电路温度和输入电压,主控电压,主控温度。具备自动启停的功能。 可以保存多组不同的烙铁头信息。烙铁主控部分代码基于https://github.com/wagi

null 307 Dec 28, 2022
Toolchain and dockerfile to build the Miyoo Custom Firmware (CFW)

Miyoo Toolchain Toolchain and dockerfile to build the Miyoo Custom Firmware (CFW) See https://github.com/TriForceX/MiyooCFW/wiki/Build-Source for more

Nathan Friedly 3 Aug 5, 2022
A custom firmware for the EleksTube IPS Clock

EleksTubeHAX - An aftermarket custom firmware for the EleksTube IPS clock Buy your own clock here: EleksTube IPS Clock Reddit discussion on the hack i

Mark Smith 72 Dec 27, 2022
A simple utility for loading custom firmware onto the PS5 camera, using libusb.

A simple utility for loading custom firmware onto the PS5 camera, using libusb.

Raleigh Littles 21 Nov 10, 2022
Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags

ATC_TLSR_Paper Custom BLE firmware for Hanshow E-Paper Shelf Labels / Price Tags using the TLSR8359 ARM SOC You can support my work via PayPal: https:

null 89 Dec 25, 2022
A custom, freestanding, experimatal kernel / firmware for the n3ds

A little experiment where I build a toy kernel for the new nintendo 3ds (n3ds).

V01D 9 Oct 17, 2022
ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps

EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with EMS (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.

EMS-ESP 274 Jan 8, 2023
Firmware for DMR transceivers using the NXP MK22 MCU, AT1846S RF chip and HR-C6000 DMR chipset. Including the Radioddiy GD-77, Baofeng DM-1801 and Baofeng RD-5R.

OpenGD77 Firmware for DMR transceivers using the NXP MK22 MCU, AT1846S RF chip and HR-C6000 DMR chipset. This includes the Radioddiy GD-77, Radioddity

Open Ham 109 Dec 31, 2022
Firmware update for XeniumOS used on Xenium and OpenXenium modchips to provide software fixes and various improvements.

Firmware update for XeniumOS used on Xenium and OpenXenium modchips to provide software fixes and various improvements. About • Features • Installatio

MakeMHz LLC 51 Dec 9, 2022
Custom Arduino-based temperature and humidity data logger.

Arduino Datalogger A custom data logger based on ATmega32u4 with a custom PCB. The device features the following main components: Atmel ATmega32u4 MCU

Valentin Bersier 7 Jul 19, 2021
A custom macOS statusbar with shell plugin, interaction and graph support

SketchyBar This is a rewrite of the spacebar project, which itself is a rewrite of the statusbar code from yabai. Features: As many widgets as you lik

Felix Kratz 1.4k Dec 28, 2022
Physical Tic-Tac-Toe smart board with PvP mode and two levels of AI. Built atop a custom PCB connected to an Arduino Mega 2560.

TicTacToe_SmartBoard The files in TicTacToe_SmartBoard are based on the files in https://wiki.illinois.edu/wiki/display/ECE110HLSF15/Tic-Tac-Toe+Smart

Hyrum Dickinson 2 Dec 3, 2022
Parsec Soda is a custom open-source game streaming app that integrates with Parsec API and is focused in Host experience.

Parsec Soda is a custom open-source game streaming app that integrates with Parsec API and is focused in Host experience.

Flávio Freitas 140 Jan 1, 2023
Firmware, mechanical and electrical design files for the Inline Filament Diameter Estimator, Lowcost (InFiDEL).

Inline Filament Diameter Estimator, Lowcost (InFiDEL) Originally created by Thomas Sanladerer A cheap, yet precise filament diameter sensor, intended

Daniel Smullen 113 Dec 29, 2022
OTA Third Party Firmware Flasher for the original Wyze Plug (WLPP1) and Wyze Bulb (WLPA19).

Wyze Plug (and Bulb!) Flasher Use this software to install third party firmware on the original Wyze Plug (model WLPP1) and Wyze Bulb (model WLPA19) o

Elahd Bar-Shai 1 Dec 11, 2022
Simple template project to build a firmware for the STM32F4 Discovery board with FreeRTOS and libopencm3

STM32F4 Discovery FreeRTOS Makfile This is a simple template project to build a firmware for the STM32F4 Discovery board with FreeRTOS and libopencm3

Andrea Colla 8 May 22, 2022
Firmware for Pinetime smartwatch written in C/C++ and based on FreeRTOS

InfiniTime The goal of this project is to design an open-source firmware for the Pinetime smartwatch : Code written in modern C++; Build system based

InfiniTime 1.9k Dec 29, 2022
Contains firmware and software used for the bead sprite printer v2 robotic system

Bead-Sprite-Printer-V2 Contains firmware and software used for the bead sprite printer v2 robotic system bead_fuser_arduino - this folder contains the

null 5 Dec 29, 2022