1
0
Fork 0
Commit graph

12 commits

Author SHA1 Message Date
8935a6ee6d Utils: Update conversion command
For some gifs, my original convert command mangled the deltas and produced
completly wrong frames.
This is due to a couple of mistakes in the order of operations
1. The -coalesce option to flatten all layers up to the current frame
   needs to be before the output, not the input
2. Resizing was done *before* the coalesce option, leading to invalid
   delta frames and image corruption
3. This was emphasized by the thresholding, making it look mangled.

Update the command in the script and the example in the README.
2024-03-18 13:15:41 +00:00
776a4e252f main: Use both RFID readers
As our RFID tags cannot co-exist on the same reader as originally plan,
handle another reader on SPI1.
Checking tags is not time sensitive and can be made in successive loops, which
minimizes the changes needed from the original code.
2024-03-07 23:22:24 +00:00
3ee09f284a RFID: Change the checkTag fail return
Previously, checkTag() returned 0 when it failed or when there was no changes.
This is fine if we are only expecting already programmed tags, but as tags
arrive new with blocks zeroed out, which conflicts with the 0 return value.

Introduce a new constant to RFID for the return error, -1, and use it
instead of 0 everywhere.
Update comments and README to highlight this new reserved ID.
2024-03-07 23:05:14 +00:00
ade4c19d55 README: Update RFID status
RFID tag programming and communication with the main
software has been validated.
2024-03-06 00:24:49 +00:00
b5b5268b79 Com: Implement tag programming
Define the protocol allowing the software to track tags
and program them, in the README.

The data structure is shared between a programming command and an
information message, so create a new struct for it and an array
to keep track of it and expose to the rest of the program.
The goal is to keep the protocol core and message construction
entirely inside Com, so this intermediary buffer allows exposing
it outside while hiding the protocol details.

This means that we are starting to receive data from the software,
so implement generic functions to check and receive data as well
as receiveMessage() which parses the message and handles them.
2024-01-06 00:32:19 +00:00
73d80312aa Build: Introduce prod/dev environments
Platformio supports multiple environments and sharing a global configuration.
Make use of this to easily allow switching between the production build, with HID,
and the development build, with serial.

Update the README with information on how to build those environments.
2023-12-17 21:18:58 +00:00
a7c2856ef6 Speaker: Introduce audio playback
Introduce the Speaker class to play audio from the SD card when detecting
tags.
The only audio supported is WAV.

Audio playback is handled via interrupts, so it might try to read from the
SD card at the same time as the LCD class is trying to read new frames.
Update the LCD animation code to temporarily disable audio interrupts while
reading from the SD card.
2023-10-22 21:19:29 +01:00
69909851c2 LCD: Introduce LCD display and animations
Add support for the LCD and using it for displaying animations.
Animations are automatically played if available for the ID of the
detected tag.

The code should support adding other kind of animations, for tags being
removed or for other UI interactions for example.
2023-10-21 22:01:10 +01:00
e21123538b Utils: Introduce utils and animation helpers
The next commit implements the LCD and animation support. To enable an easy
way to create animations for it, add details in the README regarding the way
the SD card is used and how the files need to be formatted.

Create the Utils directory and add a Rust project to do the bit flipping and
a script that automates all the steps described in the README.
Add a README for Utils explaining how to use them.
2023-10-21 21:59:54 +01:00
bedd1f4f95 Com: Implement proper communications
Implement a set of functions to create messages following the protocols
defined in the README for communication.
Handle HID, which is used to communicate with the interactive application.

Update README with details on the message structures.
2023-09-24 18:04:27 +01:00
aa2f2e4803 README: Add status
Add status of the project goals in the README and update them
with regards to the newly added RFID.
2023-09-10 20:29:06 +01:00
378d116129 Init project
Add LICENSE and README
Basic platformio project structure with required libs
2023-09-09 18:01:24 +01:00