powerpic

Replacement board for a Casio CA-53W

  • Add diagrams

    Rex McKinnon <[email protected]>

    2025-11-07 17:56:41

  • add arrow svg

    Rex McKinnon <[email protected]>

    2025-11-04 02:43:59

  • work on better documentation

    Rex McKinnon <[email protected]>

    2025-11-04 02:42:41

  • update mode: add simple mode to reboot the device which allows for firmware updates

    Rex McKinnon <[email protected]>

    2025-04-19 05:23:11

  • timer mode: add very basic stopwatch functionality

    Rex McKinnon <[email protected]>

    2025-04-19 04:41:49

  • keypad driver: make keypad scanner more robust

    Rex McKinnon <[email protected]>

    2025-04-19 04:23:23

  • uptime mode: fixed error in alarm set function call

    Rex McKinnon <[email protected]>

    2025-04-19 04:20:51

  • buzzer lib: register isr only when needed

    Rex McKinnon <[email protected]>

    2025-04-19 04:18:45

  • libs: add initialization log for each lib

    Rex McKinnon <[email protected]>

    2025-04-19 04:15:48

  • Merge branch 'master' into hw-v2_1

    Rex McKinnon <[email protected]>

    2024-07-14 18:14:42

  • makefile: build firmware based on list of modes

    Rex McKinnon <[email protected]>

    2024-04-27 06:48:39

  • release version 2.1

    Rex McKinnon <[email protected]>

    2024-04-27 01:25:05

  • makefile: flattened build directory tree

    Rex McKinnon <[email protected]>

    2024-04-13 00:30:44

  • clock mode: sync with seconds upon starting the mode

    Rex McKinnon <[email protected]>

    2024-04-11 22:39:16

  • main: removed setting of default date

    Rex McKinnon <[email protected]>

    2024-02-09 02:48:05

  • mode config: Changed mode order, added uptime setting.

    Rex McKinnon <[email protected]>

    2024-02-09 02:46:18

  • settings mode: Changed to generic bytes with ids for settings

    Rex McKinnon <[email protected]>

    2024-02-09 02:45:51

  • uptime mode: Added basicc uptime mode that counts days

    Rex McKinnon <[email protected]>

    2024-02-09 02:42:24

  • timer mode: fixed bugs in countdown timer, added mario chime

    Rex McKinnon <[email protected]>

    2024-02-09 02:41:39

  • alarmclock mode: updated to use new alarm lib

    Rex McKinnon <[email protected]>

    2024-02-09 02:35:00

  • alarm lib: Fixed longstading bugs

    Rex McKinnon <[email protected]>

    2024-02-09 02:33:59

  • datetime lib: updated to use new rtcc driver

    Rex McKinnon <[email protected]>

    2024-02-09 02:32:29

  • rtcc driver: added chip specific logic to driver

    Rex McKinnon <[email protected]>

    2024-02-09 02:30:04

  • device_config: flipflop bootloader now uses CONFIG3 - WDT.

    Rex McKinnon <[email protected]>

    2024-02-09 02:20:43

  • main: logging lib: Added wait loop for TX buffer to empty.

    Rex McKinnon <[email protected]>

    2024-02-09 02:19:12

  • Modified clock mode to hopefully be more efficient: - EEPROM setting get loaded on every start of the mode, instead of once at init. - Changed method of updating the seconds by incrementing and syncing every minute. - Switched from if/else spaghetti to switch/case. - Removed unnecessary display clearing.

    Rex McKinnon <[email protected]>

    2023-12-14 19:05:00

  • Fixed warnings in timer.c

    Rex McKinnon <[email protected]>

    2023-12-10 10:06:01

  • Small changes to compile with version 2.45 of xc8: - putch function changed to take just "char" as argument. - Configuration bit for PowerUp Timer selection changed from PWRTE to PWRTS.

    Rex McKinnon <[email protected]>

    2023-12-10 06:53:53

  • settings lib: expanded integer settings.

    Rex McKinnon <[email protected]>

    2023-07-01 00:01:06

  • settings lib: expanded integer settings.

    Rex McKinnon <[email protected]>

    2023-06-30 23:56:02

  • Added basic debug display. The primary display is printed out as ascii characters. Currently only enabled on INFO and higher log levels.

    Rex McKinnon <[email protected]>

    2023-04-07 23:45:25

  • Increased buffer to 64 bytes and changed default baudrate to 9600.

    Rex McKinnon <[email protected]>

    2023-04-07 23:42:07

  • Added super basic timer mode, only countdown is implemented

    Rex McKinnon <[email protected]>

    2023-02-04 21:12:11

  • stopwatch mode: Work towards adding a stopwatch mode that implements various timers.

    Rex McKinnon <[email protected]>

    2023-02-04 01:16:46

  • pwm driver: switch PWM4 to TMR4. The PWM4 peripheral used for buzzer now uses Timer4 instead of Timer2.

    Rex McKinnon <[email protected]>

    2023-02-03 05:12:49

  • buttons lib: Added some basic debouncing using timer1.

    Rex McKinnon <[email protected]>

    2023-01-28 03:02:39

  • Fixed an issue when compiling from scratch. I believe this is due to an issue in the `-include` directive in Make 4.4. Depends list is now generated based on existing files.

    Rex McKinnon <[email protected]>

    2022-12-12 23:02:25

  • buzzer lib: Added ability to play RTTTL ringtones. Currently these ringtones are stored as strings in RTTTL format.

    Rex McKinnon <[email protected]>

    2022-10-31 23:40:04

  • Makefile: Now uses .d files to compile based on changes

    Rex McKinnon <[email protected]>

    2022-10-17 20:59:37

  • thermometer mode: Added calibrate functionality. temperature lib: Added calibrate procedure that records the current adc reading. nvm driver: Added procedure to read from all PFM locations.

    Rex McKinnon <[email protected]>

    2022-10-15 20:30:13

  • firmware main: Changed the initial date.

    Rex McKinnon <[email protected]>

    2022-10-15 20:27:34

  • clock mode: Added backlight button to clock face.

    Rex McKinnon <[email protected]>

    2022-10-15 17:42:59

  • No longer using bootloader. No good way to start bootloader yet.

    Rex McKinnon <[email protected]>

    2022-10-06 17:09:13

  • display lib: Added functions to display hex numbers.

    Rex McKinnon <[email protected]>

    2022-10-06 17:08:13

  • Switched firmware to use flipflop bootloader.

    Rex McKinnon <[email protected]>

    2022-08-26 05:34:47

  • mode settings: Added persistent settings to clock and settings modes.

    Rex McKinnon <[email protected]>

    2022-08-20 18:38:52

  • settings lib: Basic data storage lib. Uses device EEPROM.

    Rex McKinnon <[email protected]>

    2022-08-20 17:58:47

  • thermometer mode: Basic mode that displays the temperature. The temperature lib it's based on uses the internal temp sensor so it is labeled CPU to indicate it's probably not ambient temp.

    Rex McKinnon <[email protected]>

    2022-08-19 22:29:47

  • temperature mode: Calculate temperature based on internal sensor.

    Rex McKinnon <[email protected]>

    2022-08-19 19:58:53

  • settings mode: Added basic mode to edit system settings.

    Rex McKinnon <[email protected]>

    2022-08-17 22:48:51

  • display lib: Polished display_primary_number. Now accepts negative positions. Now accepts negative numbers. Verifies number is in range, and displays error if not.

    Rex McKinnon <[email protected]>

    2022-08-17 19:30:30

  • clock, alarmclock, power modes: Better interfaces.

    Rex McKinnon <[email protected]>

    2022-08-14 18:14:06

  • firmware readme: Updated note about compiler version.

    Rex McKinnon <[email protected]>

    2022-08-13 22:01:34

  • display lib: Split library into multiple files. Each display group has its own file. This hopefully will allow for easier expansion of the lib.

    Rex McKinnon <[email protected]>

    2022-08-13 21:59:10

  • power mode: Added new mode that displays battery voltage.

    Rex McKinnon <[email protected]>

    2022-08-13 06:06:14

  • mode lib: All mode functions now optional except start.

    Rex McKinnon <[email protected]>

    2022-08-13 06:01:02

  • battery lib: Now enabling ADC only when sampling.

    Rex McKinnon <[email protected]>

    2022-08-13 05:24:54

  • Changed plain text block to quote.

    Rex McKinnon <[email protected]>

    2022-08-09 17:13:03

  • display lib: Fixed a bug where all segments on the secondary display were not getting cleared.

    Rex McKinnon <[email protected]>

    2022-08-09 17:04:05

  • Added legacy v1.0 schematic.

    Rex McKinnon <[email protected]>

    2022-08-09 17:02:57

  • Updated readmes and added a header photo.

    Rex McKinnon <[email protected]>

    2022-08-09 17:02:30

  • Added new POST procedure to run after reset.

    Rex McKinnon <[email protected]>

    2022-08-08 04:02:09

  • clock mode: Added better looking weekday display

    Rex McKinnon <[email protected]>

    2022-08-07 20:43:20

  • display lib: Added function to display specific segments. This allows custom characters to easily be drawn.

    Rex McKinnon <[email protected]>

    2022-08-07 19:52:50

  • pwm driver: Fixed a mismatched return type. backlight lib: Fixed a bug with toggling the backlight. test mode: Started working towards a 'POST' mode that verifies watch functionality.

    Rex McKinnon <[email protected]>

    2022-08-07 05:30:06

  • buzzer lib: Work on changing buzzer timer to be interrupt-based.

    Rex McKinnon <[email protected]>

    2022-08-07 04:09:39

  • clock mode: Changed the way 24HR time is converted. Should fix bug where 2000-2100 were not displaying correctly in 12HR mode.

    Rex McKinnon <[email protected]>

    2022-07-26 01:03:12

  • alarm mode: Improved hourly chime sound and duration.

    Rex McKinnon <[email protected]>

    2022-07-26 01:00:16

  • clock_mode: - Added date display with '/' (divide) key. - Date is now settable by the user in the ADJ button menu.

    Rex McKinnon <[email protected]>

    2022-07-25 04:53:59

  • display library: Fixed a bug when clearing the entire secondary display.

    Rex McKinnon <[email protected]>

    2022-07-25 04:51:06

  • clock_mode: Fixed a bug where the hour tens digit was not getting cleared.

    Rex McKinnon <[email protected]>

    2022-07-24 19:15:46

  • Added more information to READMEs

    Rex McKinnon <[email protected]>

    2022-07-19 17:35:14

  • Changed the main loop to sleep after executing all events.

    Rex McKinnon <[email protected]>

    2022-06-30 22:50:44

  • Added super barebones clock mode application.

    Rex McKinnon <[email protected]>

    2022-06-30 22:20:38

  • Changed programmer baudrate to be configurable in the Makefile.

    Rex McKinnon <[email protected]>

    2022-06-30 02:20:10

  • Completely changed the way mode application are configured. Mode applications now configure libraries by calling the library's functions.

    Rex McKinnon <[email protected]>

    2022-06-30 02:19:39

  • Fixed tick lib to generate an event at the requested rate. Previously, every event was resetting the tick timer.

    Rex McKinnon <[email protected]>

    2022-06-29 23:50:01

  • Added alarmclock daemon that beeps on hourly and daily alarm events.

    Rex McKinnon <[email protected]>

    2022-06-24 17:03:32

  • Fixed a bug in alarm lib where the number of registered alarms wasnt getting decremented when one was deleted.

    Rex McKinnon <[email protected]>

    2022-06-24 16:11:33

  • Added a way to remove alarms with their event data.

    Rex McKinnon <[email protected]>

    2022-06-23 21:58:48

  • Added simple daemon functionality for mode's to optionally implement.

    Rex McKinnon <[email protected]>

    2022-06-23 20:50:25

  • Mode's run function now returns value signalling to switch modes.

    Rex McKinnon <[email protected]>

    2022-06-23 20:46:25

  • Alarmclock is now almost exactly the same as stock casio.

    Rex McKinnon <[email protected]>

    2022-06-23 18:16:15

  • Added alarmclock mode that mimcs a stock casio.

    Rex McKinnon <[email protected]>

    2022-06-23 06:31:57

  • Display driver now less aggressive about positions when displaying numbers.

    Rex McKinnon <[email protected]>

    2022-06-23 02:19:17

  • Added a big, ugly hacki of an alarm library.

    Rex McKinnon <[email protected]>

    2022-06-22 17:36:00

  • Re-write of the core system completed.

    Rex McKinnon <[email protected]>

    2022-06-21 17:32:42

  • Empty Slate, Fresh Canvas.

    Rex McKinnon <[email protected]>

    2022-06-02 00:44:29

  • Re-work inevitable

    Rex McKinnon <[email protected]>

    2022-05-30 21:08:21

  • Changed clock speed to 32MHz from 1MHz. Split EUSART configuration for UART into a driver.

    Rex McKinnon <[email protected]>

    2022-05-23 19:31:32

  • Added support for v2 boards. Lots of various other changes

    Rex McKinnon <[email protected]>

    2022-05-21 18:41:15

  • Cleaned root readme

    Rex McKinnon <[email protected]>

    2022-05-12 20:35:49

  • Redesigned board with RTCXTAL and led backlight

    Rex McKinnon <[email protected]>

    2022-05-12 20:34:39

  • Added configurable fonts for modes.

    Rex McKinnon <[email protected]>

    2022-05-05 00:10:51

  • Initial firmware commit- implements basic watch functionalty using smaller 'mode' applications.

    Rex McKinnon <[email protected]>

    2022-05-04 02:32:09

  • Fixed a link to my website

    Rex McKinnon <[email protected]>

    2022-03-11 07:39:42

  • Changed some links in the READMEs

    Rex McKinnon <[email protected]>

    2022-03-11 07:34:42

  • Basic firmware layout, included UART driver as example.

    Rex McKinnon <[email protected]>

    2022-03-11 07:30:35

  • Changed directory naming scheme

    Rex McKinnon <[email protected]>

    2022-03-05 22:24:30

  • Version 1.1 Release

    Rex McKinnon <[email protected]>

    2022-03-05 21:49:25

  • Version 1.0 of pcb

    Rex McKinnon <[email protected]>

    2022-03-05 05:37:26

  • Added some silkscreen labels, and noticed a design error. Final commit before version bump

    Rex McKinnon <[email protected]>

    2022-02-10 23:18:41

  • Added PCB design files

    Rex McKinnon <[email protected]>

    2022-02-10 02:36:51

  • Added powerpic schematic

    Rex McKinnon <[email protected]>

    2022-02-08 23:44:52