Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/pmnxis/billmock-app-rs

BillMock firmware source code written in rust
https://github.com/pmnxis/billmock-app-rs

firmware rust rust-embedded stm32g0

Last synced: about 1 month ago
JSON representation

BillMock firmware source code written in rust

Lists

README

        

# `billmock-app-rs`

Rust Embedded firmware using **rust embedded-hal**[1](#footnote_1) and **embassy-rs**[2](#footnote_1) on **STM32G030C8**[3](#footnote_1) MCU for Billmock product.

Used rust experimentally.

This repository is aiming three goal.
One for development of production firmware and second is making a proof of concept that rust embedded is usable for actual embedded production. And last goal is setting some example about production-rust-embedded-code.

**This project is currently under development, with ongoing QA testing and some optimization remaining.**

## Billmock
Detail documentation is here [BillMock Manual](https://billmock.pmnxis.net/)

It is hardware and software for the purpose of converting I/O signals related to money payment of arcade game machines for compatibility.

This project began development at the request of **GPARK Co., Ltd**[4](#footnote_1) and was designed and developed for the using credit card readers in arcade game machine and compatibility of existing payment systems (open-drain-based), and is open to the public except for code in the NDA area.
The project has been granted an open source disclosure except of NDA era.

## Target Hardware
Based on BillMock-HW 0.5 mini, 0.4 mini and 0.4.

0.2 and 0.3 HW bring-up codes are still left for recyle the old PCB.
- 0.2 HW has different gpio configuration compare to latest boards.
- 0.3 HW has minor bugs, floating on VendSide-Inhibit and missing net route on VendSide-1P-StartJam.
- 0.4 HW fixed 0.3 HW bugs.
- 0.4 HW mini reduced BOM for mass-manufacturing
- 0.5 HW mini added tact switch for SVC mode call

Current default HW is `0.5 mini`. If need to use old 0.4 or 0.4 mini, following below command lines
```sh
cargo build --features hw_0v4 --no-default-features --release
cargo build --features hw_mini_0v4 --no-default-features --release
```

### Target hardware image
![Actual BillMock PCB 0v5](https://billmock.gpark.biz/images/BillMockPCB_0v5_mini.jpg)
The hardware revision currently adopted for final mass production is 0.5-MINI, and the software development is also progressing according to this version.

![Actual BillMock PCB 0v4](https://billmock.gpark.biz/images/BillMockPCB_0v4.jpg)
Old revisions.

### Hardware design
BillMock hardware schematic repository (only pdf)
https://github.com/pmnxis/BillMock-HW-RELEASE

The schematic printed in PDF is distributed under CC BY-SA 3.0, but the actual Gerber files and project files are private.

#### v 0.5 Mini (2023-10-24)
[BillMock-Mini-HW-0v5.pdf](https://github.com/pmnxis/BillMock-HW-RELEASE/blob/master/sch/BillMock-Mini-HW-0v5.pdf)

#### v 0.4 Mini (2023-09-12 or 2023-09-13)
[BillMock-Mini-HW-0v4.pdf](https://github.com/pmnxis/BillMock-HW-RELEASE/blob/master/sch/BillMock-Mini-HW-0v4.pdf)

#### v 0.4 (2023-09-08)
[BillMock-HW-0v4.pdf](https://github.com/pmnxis/BillMock-HW-RELEASE/blob/master/sch/BillMock-HW-0v4.pdf)

#### ~~v 0.3 (2023-08-11)~~ - DEPRECATED
~~[BillMock-HW-0v3.pdf](https://github.com/pmnxis/BillMock-HW-RELEASE/blob/master/sch/BillMock-HW-0v3.pdf)~~

#### ~~v 0.2 (2023-06-13)~~ - DEPRECATED
~~[BillMock-HW-0v2.pdf](https://github.com/pmnxis/BillMock-HW-RELEASE/blob/master/sch/BillMock-HW-0v2.pdf)~~

## Feature diagram
![BillMock feature diagram](https://billmock.gpark.biz/images/billmock_logic_diagram.png)

## Dependencies
See details here [dependencies](docs/dependencies.md)

### NDA Dependencies
- [Dependency Injection for card reader](https://billmock.pmnxis.net/dev/dependency_injection.html)
- [Detail stories](docs/SerialDevice.md)

## License
This program and the accompanying materials are made available under the terms
of the Apache Software License 2.0 which is available at
https://www.apache.org/licenses/LICENSE-2.0, or the MIT license which is
available at https://opensource.org/licenses/MIT

Also all of codes are based one MIT or Apache Software License 2.0. But some common *.toml files are based on CC0-1.0 license. (Example Cargo.toml)

## Footnote
1 `rust embedded-hal` is hardware abstraction layer written in rust

( https://github.com/rust-embedded/embedded-hal )

2 `embassy-rs` is rust embedded framework

( https://github.com/embassy-rs/embassy )

3 `STM32G030C8` is STMicroelectronics' MCU with ARM-Cortex M0+ , 64KiB Flash and 8KiB SRAM.

( https://www.st.com/en/microcontrollers-microprocessors/stm32g030c8.html )

4: `GPARK Co., Ltd.` is a company in South Korea that operates the arcade game industry.