Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/foo-git/gm60_micropython
Driver for GM60 barcode scanner with MicroPython and ESP32
https://github.com/foo-git/gm60_micropython
barcode-scanner esp32 gm60 grocy micropython micropython-esp32
Last synced: 3 months ago
JSON representation
Driver for GM60 barcode scanner with MicroPython and ESP32
- Host: GitHub
- URL: https://github.com/foo-git/gm60_micropython
- Owner: foo-git
- Created: 2024-06-28T17:26:00.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-20T07:53:14.000Z (5 months ago)
- Last Synced: 2024-10-01T05:03:20.142Z (3 months ago)
- Topics: barcode-scanner, esp32, gm60, grocy, micropython, micropython-esp32
- Language: Python
- Homepage:
- Size: 1.83 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GM60 barcode scanner driver for MicroPython and ESP32
## Background
To make the GM60 barcode scanner work with an ESP32 using MicroPython, a driver is needed to handle the input/output to the scanner. The `driver` folder contains this driver, further development resources are located in the `docs` folder.
This driver is used in another project for inventory handling using [Grocy](https://grocy.info/), a great software project.## Features
* Comfortable I/O commands make working with the datasheet easier
* CRC support for incoming and outgoing packets## Example usage
See `example.py` for runnable commands.```
# Load driver
>>> from gm60_micropython import GM60_Driver# Initialize UART connection to GM60 barcode scanner
# UART port/naming hint:
# GM60 RX (green cable) needs to be connected to ESP32 TX (e.g. here pin 25)
# GM60 TX (yellow cable) needs to be connected to ESP32 RX (e.g. here pin 26)
>>> scanner = GM60_Driver(rx=26, tx=25)# Prints hardware and software version information
>>> scanner.get_version()
{'hardware': 1.0, 'software_date': '2021-09-16', 'software': 1.08}# Resets scanner back to factory settings
>>> scanner.reset_to_factory_defaults()# Prints register settings in hexadecimal and binary format for easier development
>>> scanner.get_register_settings(0x0000)
(['0x8e'], ['0b10001110'])# Set LED always on
>>> scanner.set_register_settings(0x0000, 0b10001110)# Set LED to maximum brightness
>>> scanner.set_register_settings(0x0015, 0x63)# Read barcode from sensor
>>> scanner.read_barcode()
'4066447241358'
```![Circuit diagram for GM60 and ESP32](https://github.com/foo-git/gm60_micropython/blob/main/docs/circuit.png?raw=true)
![Photo of GM60 and ESP32 proof-of-concept build](https://github.com/foo-git/gm60_micropython/blob/main/docs/poc.jpg?raw=true)
## References
See `docs/references.md` for other projects using the GM60 barcode scanner. Linked there also is the GM60 datasheet for future reference.