Update all footprints to KiCad 5 paths
by chrisy 5 years 9 months
Update all footprints to KiCad 5 paths

* All footprints updated.
* 3D models for the relays seem to be missing from KiCad, however, so I
have a copy in my personal library. Mostly cosmetic.
1a6a7d2e
Fix KiCad 4 footprints
by chrisy 5 years 9 months
Fix KiCad 4 footprints

* Update the Phoenix connectors with KiCad 5 footprints
775c5030
Button read fixes
by chrisy 5 years 9 months
Button read fixes

* Properly initialize timer 0; enable it and TMR0 is not a 16-bit overlay
of the L and H sections so reset those independently
* We want the falling edge; sense is not inverted like other platforms
* Likewise, need to invert the port read, since it's active low; oddity here
though, bitwise-invert (~) works in the straight assignment case (a = ~b)
but will not compile in a slightly more involved expression (a = b & ~c) -
need to work out why
* Interrupt on change seems to flag 'down' as well as 'up' inputs when 'up' is
pressed, need to work out if this is a hardware issue

* Switch compilation mode to hybrid; no need for a call stack all the time
5417421b
First approximation of button handling
by chrisy 5 years 10 months
First approximation of button handling

- De-bounce input lines by effectively comparing the input line at both
time interrupt time and after a short timer expires.
- Reset the timer if any input line triggers. It's a short period, but
the assumption is that 'stop' is the combination of the 'up' and
'down' buttons and there may be a short delay before both lines are
engaged; so long as it's less than the de-bounce interval then we will
record both lines once the interval expires.
- Main loop latches the de-bounced values in a re-entrant friendly way.
Otherwise we risk subsequent presses overwriting the value as we're
processing them.
e7ecf796
Update board symbols, minor ground plane fixes
by chrisy 5 years 10 months
Update board symbols, minor ground plane fixes

* Fuse rating, board maximums
* ESD logo
* WEEE logo

* Some ground plane fixes around the MAX232
b0620d78
First approximation of a working system
by chrisy 5 years 10 months
First approximation of a working system

- Working relay control, with timed shutoff
- Working serial command input with basic feedback
- Note: No button control yet
- Now a C99 compliant project (previously was xc8's interpretation of C90)
- Bugfix in UART FIFO; off-by-one on buffer put rollover
- Wrapped unused function in ifdef for now to cease a warning
1ee6e527
Add a smattering of ground vias
by chrisy 5 years 10 months
045a5ffe
Split the 5v and 12v ground paths
by chrisy 5 years 10 months
Split the 5v and 12v ground paths

* To control the return path for (noisy) relay current, split the grounds for
the 12v and 5v sections.
* The grounds are joined by bridges (solder pads) placed adjacent to the 5v
regulator, on both layers.
* The gound plane is split in two; conveniently the 12v vs 5v components were
already well placed to make this straightforward.
* 12v power LED uses the 5v ground to simplify routing.
* Add dummy power flags for ERC
1b4c432e
UART fixes; test code
by chrisy 5 years 10 months
UART fixes; test code

* UART tweaks;
* Disable ADCs (pin thieves!)
* Add missing BRG16 flag
* Be complete about the PPS setup (though empirically not necessary)
* Manage interrupts around some critical code
* Add simple test code to the main loop;
* Alternating LED/Relay pattern
* UART echo-back
* Add a version number string
* Start some button input de-bounce logic
* ICD4 project configuration
* README & .gitignore updates
4723e977
Minor layout tweaks, component updates
by chrisy 5 years 10 months
Minor layout tweaks, component updates

* Add an MCU driven status LED
* Update LED current limit resistor values
* Minor trace tweaks for clearance
* Based on empirical measurements of rev 0.1 board, adjust the location of the
board mounting holes.
bffc44e4
Report a bug