Skip to content

Commit d301998

Browse files
bors[bot]azasypkin
andauthored
Merge #21
21: Add Kroneum r=adamgreig a=azasypkin Hey, I'd like to showcase my Kroneum device. It's an experimental (yet), minimalist, accessible (no GUI) and fully open source (both in code and hardware) time tracker device. * Source code: https://github.com/azasypkin/kroneum * License: https://github.com/azasypkin/kroneum/blob/master/LICENSE * Software: https://github.com/azasypkin/kroneum/tree/master/sw (firmware + CLI tool) * Hardware: https://github.com/azasypkin/kroneum/tree/master/hw/pcb/Rev_0.5 **NOTE:** I've linked to the rendered photo even though repository contains photo of real assembled device (it just looks better than the photo taken with my not-the-best-in-class phone camera). Would be happy to hear any improvement suggestions even if it's not accepted, thanks! ---- # Evaluation guidelines ## Hard requirements - [x] It's an application (binary crate) that runs on embedded hardware (Single Board Computer, development board or custom PCB). - **YES** (custom PCB + custom enclosure) - [x] The main logic of the application must be written in Rust. - **YES** (including USB CLI tool) - [x] The source code must be public. Licensing terms are unimportant. - **YES** (including PCB and enclosure design files) ## Bonus points - [x] The project is unlike the projects currently on display. - **YES** (it seems) - [x] The documentation includes instructions on how to build the program, or the firmware can be built with just `cargo build`. - **YES** - [x] The repository has a CI setup. - **YES** (very basic one though) - [x] The application compiles on stable. - **YES** - [ ] The application code is free from `unsafe` code and all `unsafe` code has been pushed to libraries that only expose a safe API. - **NO** (still have a bunch of cases where I couldn't find a good way to get rid of `unsafe`) - [x] Code that's not target specific, if any, has unit tests. - **YES and NO** (target agnostic [api](https://github.com/azasypkin/kroneum/tree/master/sw/firmware/api) crate has a number of unit tests, but not everything is covered) - [x] Support code, if any, is documented. - **YES** (via code comments) ## Penalties - [x] The application contains potential soundness issues. For example, using `mem::transmute`, unchecked creation of singletons and unchecked use of `static mut` variables are huge red flags. - **YES and NO** (still have one root `static Mutex<RefCell>`, cannot migrate to and not really happy about `cortex-m-rtfm` 🤷‍♂️ ) - [x] Explicit panicking (e.g. `unwrap`) is used instead of proper error handling. However, note that `unreachable!` is OK if properly used. - **YES** (have a few `.expect(..)` at the `main` during device bootstrap stage) Co-authored-by: Aleh Zasypkin <aleh.zasypkin@gmail.com>
2 parents c6cec19 + 6b40c5d commit d301998

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

data.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@
2828
author_website: https://thejpster.org.uk/
2929
description: A simple 1980's home computer style application for the Tiva-C Launchpad
3030
image: https://raw.githubusercontent.com/thejpster/monotron/master/screenshot.jpg
31+
- name: Kroneum
32+
website: https://github.com/azasypkin/kroneum
33+
author: Aleh Zasypkin
34+
author_website: https://github.com/azasypkin
35+
description: An experimental, accessible (no GUI) and fully open source (both in code and hardware) time tracker device. The board exposes pads for I²C and SPI interfaces, acts as an USB HID device when connected to USB port and hence can be used as a playground for any custom firmware.
36+
image: https://raw.githubusercontent.com/azasypkin/kroneum/master/hw/enclosure/Rev_0.5/demo/kroneum-enclosure-render.png
3137

3238
# Template for new entries
3339

0 commit comments

Comments
 (0)