First code for display

This commit is contained in:
Stefan Ostermann 2021-08-22 18:56:12 +02:00
parent 3cfe6d88d3
commit ee665ae432
10 changed files with 2844 additions and 1079 deletions

3
.gitignore vendored
View File

@ -3,3 +3,6 @@
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch
schema/max-7seg-clock/gerber/
schema/max-7seg-clock/max-7seg-clock.zip

View File

@ -13,6 +13,8 @@ platform = espressif8266
board = d1_mini
framework = arduino
monitor_speed = 115200
upload_port = /dev/ttyUSB0
lib_deps =
wayoda/LedControl@^1.0.6
adafruit/RTClib@^1.13.0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,10 +2,10 @@
(general
(thickness 1.6)
(drawings 6)
(tracks 1061)
(drawings 13)
(tracks 1064)
(zones 0)
(modules 45)
(modules 50)
(nets 30)
)
@ -34,7 +34,7 @@
)
(setup
(last_trace_width 0.25)
(last_trace_width 0.5)
(user_trace_width 0.5)
(trace_clearance 0.2)
(zone_clearance 0.508)
@ -159,6 +159,126 @@
(add_net "Net-(U33-Pad2)")
)
(module Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical (layer F.Cu) (tedit 59FED5CC) (tstamp 6109F9FF)
(at 222.25 128.905)
(descr "Through hole straight pin header, 1x02, 2.54mm pitch, single row")
(tags "Through hole pin header THT 1x02 2.54mm single row")
(path /610ED666)
(fp_text reference J4 (at 0 -2.33) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value Conn_01x02 (at 0 4.87) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0 1.27 90) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1))
(fp_line (start 1.27 -1.27) (end 1.27 3.81) (layer F.Fab) (width 0.1))
(fp_line (start 1.27 3.81) (end -1.27 3.81) (layer F.Fab) (width 0.1))
(fp_line (start -1.27 3.81) (end -1.27 -0.635) (layer F.Fab) (width 0.1))
(fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1))
(fp_line (start -1.33 3.87) (end 1.33 3.87) (layer F.SilkS) (width 0.12))
(fp_line (start -1.33 1.27) (end -1.33 3.87) (layer F.SilkS) (width 0.12))
(fp_line (start 1.33 1.27) (end 1.33 3.87) (layer F.SilkS) (width 0.12))
(fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12))
(fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12))
(fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12))
(fp_line (start -1.8 -1.8) (end -1.8 4.35) (layer F.CrtYd) (width 0.05))
(fp_line (start -1.8 4.35) (end 1.8 4.35) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.8 4.35) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05))
(fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05))
(pad 2 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 17 GND))
(pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask)
(net 18 +5V))
(model ${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x02_P2.54mm_Vertical.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(module MountingHole:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 56D1B4CB) (tstamp 61072984)
(at 130.81 135.89)
(descr "Mounting Hole 3.2mm, no annular, M3")
(tags "mounting hole 3.2mm no annular m3")
(path /610C203A)
(attr virtual)
(fp_text reference H4 (at 0 -4.2) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value MountingHole (at 0 4.2) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05))
(fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15))
(fp_text user %R (at 0.3 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
)
(module MountingHole:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 56D1B4CB) (tstamp 6107297C)
(at 130.81 17.145)
(descr "Mounting Hole 3.2mm, no annular, M3")
(tags "mounting hole 3.2mm no annular m3")
(path /610C06F0)
(attr virtual)
(fp_text reference H3 (at 0 -4.2) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value MountingHole (at 0 4.2) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05))
(fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15))
(fp_text user %R (at 0.3 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
)
(module MountingHole:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 56D1B4CB) (tstamp 61072974)
(at 229.87 135.89)
(descr "Mounting Hole 3.2mm, no annular, M3")
(tags "mounting hole 3.2mm no annular m3")
(path /610BE5D7)
(attr virtual)
(fp_text reference H2 (at 0 -4.2) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value MountingHole (at 0 4.2) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05))
(fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15))
(fp_text user %R (at 0.3 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
)
(module MountingHole:MountingHole_3.2mm_M3 (layer F.Cu) (tedit 56D1B4CB) (tstamp 6107296C)
(at 229.87 17.145)
(descr "Mounting Hole 3.2mm, no annular, M3")
(tags "mounting hole 3.2mm no annular m3")
(path /610C54A4)
(attr virtual)
(fp_text reference H1 (at 0 -4.2) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value MountingHole (at 0 4.2) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_circle (center 0 0) (end 3.45 0) (layer F.CrtYd) (width 0.05))
(fp_circle (center 0 0) (end 3.2 0) (layer Cmts.User) (width 0.15))
(fp_text user %R (at 0.3 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(pad 1 np_thru_hole circle (at 0 0) (size 3.2 3.2) (drill 3.2) (layers *.Cu *.Mask))
)
(module Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal (layer F.Cu) (tedit 5AE5139B) (tstamp 61076F8F)
(at 216.535 111.76)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=10.16mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
@ -684,7 +804,7 @@
(fp_text reference U33 (at 3.81 -2.33) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value DS1307+ (at 3.81 9.95) (layer F.Fab)
(fp_text value DS1307+ (at 3.81 9.95) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 1.635 -1.27) (end 6.985 -1.27) (layer F.Fab) (width 0.1))
@ -2626,7 +2746,7 @@
(fp_text reference U0 (at 3.81 -2.33) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value MAX7219 (at 3.81 30.27) (layer F.Fab)
(fp_text value MAX7219 (at 3.81 30.27) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 9.15 -1.6) (end -1.55 -1.6) (layer F.CrtYd) (width 0.05))
@ -2771,9 +2891,30 @@
)
)
(gr_line (start 233.68 20.955) (end 233.68 17.78) (layer Edge.Cuts) (width 0.05) (tstamp 6106AC28))
(gr_line (start 127 20.955) (end 127 17.78) (layer Edge.Cuts) (width 0.05) (tstamp 6106AC22))
(gr_line (start 233.68 17.78) (end 127 17.78) (layer Edge.Cuts) (width 0.05) (tstamp 6107399C))
(gr_text "TooManySevenSegmentsClock 2021 by Stefan Ostermann\nthoster.net" (at 180.34 16.51) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_text GND (at 226.06 131.445) (layer F.SilkS) (tstamp 610A04D4)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_text GND (at 227.965 123.825) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_text GND (at 132.08 123.825) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_text +5V (at 132.715 113.665) (layer F.SilkS) (tstamp 610A04C4)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_text +5V (at 227.965 113.665) (layer F.SilkS) (tstamp 610A04C4)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_text +5V (at 226.06 128.27) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(gr_line (start 233.68 20.955) (end 233.68 13.335) (layer Edge.Cuts) (width 0.05) (tstamp 6106AC28))
(gr_line (start 127 20.955) (end 127 13.335) (layer Edge.Cuts) (width 0.05) (tstamp 6106AC22))
(gr_line (start 233.68 13.335) (end 127 13.335) (layer Edge.Cuts) (width 0.05) (tstamp 6107399C))
(gr_line (start 233.68 139.7) (end 233.68 20.955) (layer Edge.Cuts) (width 0.05))
(gr_line (start 127 139.7) (end 233.68 139.7) (layer Edge.Cuts) (width 0.05))
(gr_line (start 127 20.955) (end 127 139.7) (layer Edge.Cuts) (width 0.05))
@ -3521,7 +3662,6 @@
(segment (start 139.7 107.95) (end 139.7 103.505) (width 0.5) (layer F.Cu) (net 18))
(segment (start 138.43 113.665) (end 139.7 112.395) (width 0.5) (layer F.Cu) (net 18))
(segment (start 130.81 113.665) (end 138.43 113.665) (width 0.5) (layer F.Cu) (net 18))
(segment (start 213.995 128.905) (end 229.235 113.665) (width 0.5) (layer F.Cu) (net 18))
(segment (start 201.295 128.905) (end 213.995 128.905) (width 0.5) (layer F.Cu) (net 18))
(segment (start 162.151998 119.595002) (end 165.48 119.595002) (width 0.5) (layer F.Cu) (net 18))
(segment (start 165.48 119.595002) (end 165.715001 119.360001) (width 0.5) (layer F.Cu) (net 18))
@ -3550,6 +3690,10 @@
(segment (start 229.235 113.665) (end 232.41 113.665) (width 0.5) (layer F.Cu) (net 18))
(segment (start 228.6 113.665) (end 226.695 111.76) (width 0.5) (layer F.Cu) (net 18))
(segment (start 229.235 113.665) (end 228.6 113.665) (width 0.5) (layer F.Cu) (net 18))
(segment (start 222.25 127) (end 219.075 123.825) (width 0.5) (layer F.Cu) (net 18))
(segment (start 222.25 128.905) (end 222.25 127) (width 0.5) (layer F.Cu) (net 18))
(segment (start 219.075 123.825) (end 229.235 113.665) (width 0.5) (layer F.Cu) (net 18))
(segment (start 213.995 128.905) (end 219.075 123.825) (width 0.5) (layer F.Cu) (net 18))
(segment (start 130.81 118.745) (end 140.97 128.905) (width 0.25) (layer B.Cu) (net 19))
(segment (start 140.97 128.905) (end 140.97 132.08) (width 0.25) (layer B.Cu) (net 19))
(segment (start 165.879999 134.764999) (end 167.005 135.89) (width 0.25) (layer B.Cu) (net 19))
@ -3874,6 +4018,13 @@
(xy 231.648 123.698) (xy 231.648 123.678) (xy 231.902 123.678) (xy 231.902 123.698) (xy 231.922 123.698)
(xy 231.922 123.952) (xy 231.902 123.952) (xy 231.902 125.145814) (xy 232.131891 125.266481) (xy 232.406252 125.169157)
(xy 232.656355 125.020178) (xy 232.872588 124.825269) (xy 233.02 124.627637) (xy 233.02 139.04) (xy 127.66 139.04)
(xy 127.66 135.669872) (xy 128.575 135.669872) (xy 128.575 136.110128) (xy 128.66089 136.541925) (xy 128.829369 136.948669)
(xy 129.073962 137.314729) (xy 129.385271 137.626038) (xy 129.751331 137.870631) (xy 130.158075 138.03911) (xy 130.589872 138.125)
(xy 131.030128 138.125) (xy 131.461925 138.03911) (xy 131.868669 137.870631) (xy 132.234729 137.626038) (xy 132.546038 137.314729)
(xy 132.790631 136.948669) (xy 132.95911 136.541925) (xy 133.045 136.110128) (xy 133.045 135.669872) (xy 132.95911 135.238075)
(xy 132.790631 134.831331) (xy 132.546038 134.465271) (xy 132.234729 134.153962) (xy 131.868669 133.909369) (xy 131.461925 133.74089)
(xy 131.030128 133.655) (xy 130.589872 133.655) (xy 130.158075 133.74089) (xy 129.751331 133.909369) (xy 129.385271 134.153962)
(xy 129.073962 134.465271) (xy 128.829369 134.831331) (xy 128.66089 135.238075) (xy 128.575 135.669872) (xy 127.66 135.669872)
(xy 127.66 133.072702) (xy 144.006903 133.072702) (xy 144.078486 133.316671) (xy 144.333996 133.437571) (xy 144.608184 133.5063)
(xy 144.890512 133.520217) (xy 145.17013 133.478787) (xy 145.436292 133.383603) (xy 145.561514 133.316671) (xy 145.633097 133.072702)
(xy 144.82 132.259605) (xy 144.006903 133.072702) (xy 127.66 133.072702) (xy 127.66 132.150512) (xy 143.379783 132.150512)
@ -3961,6 +4112,13 @@
(xy 165.73332 136.569727) (xy 165.890363 136.804759) (xy 166.090241 137.004637) (xy 166.325273 137.16168) (xy 166.586426 137.269853)
(xy 166.863665 137.325) (xy 167.146335 137.325) (xy 167.423574 137.269853) (xy 167.684727 137.16168) (xy 167.919759 137.004637)
(xy 168.119637 136.804759) (xy 168.27668 136.569727) (xy 168.384853 136.308574) (xy 168.44 136.031335) (xy 168.44 135.748665)
(xy 168.424327 135.669872) (xy 227.635 135.669872) (xy 227.635 136.110128) (xy 227.72089 136.541925) (xy 227.889369 136.948669)
(xy 228.133962 137.314729) (xy 228.445271 137.626038) (xy 228.811331 137.870631) (xy 229.218075 138.03911) (xy 229.649872 138.125)
(xy 230.090128 138.125) (xy 230.521925 138.03911) (xy 230.928669 137.870631) (xy 231.294729 137.626038) (xy 231.606038 137.314729)
(xy 231.850631 136.948669) (xy 232.01911 136.541925) (xy 232.105 136.110128) (xy 232.105 135.669872) (xy 232.01911 135.238075)
(xy 231.850631 134.831331) (xy 231.606038 134.465271) (xy 231.294729 134.153962) (xy 230.928669 133.909369) (xy 230.521925 133.74089)
(xy 230.090128 133.655) (xy 229.649872 133.655) (xy 229.218075 133.74089) (xy 228.811331 133.909369) (xy 228.445271 134.153962)
(xy 228.133962 134.465271) (xy 227.889369 134.831331) (xy 227.72089 135.238075) (xy 227.635 135.669872) (xy 168.424327 135.669872)
(xy 168.384853 135.471426) (xy 168.27668 135.210273) (xy 168.119637 134.975241) (xy 167.919759 134.775363) (xy 167.687241 134.62)
(xy 167.919759 134.464637) (xy 168.119637 134.264759) (xy 168.223043 134.11) (xy 168.640987 134.11) (xy 168.627795 134.129744)
(xy 168.549774 134.318102) (xy 168.51 134.518061) (xy 168.51 134.721939) (xy 168.549774 134.921898) (xy 168.627795 135.110256)
@ -3969,13 +4127,31 @@
(xy 215.227678 135.38) (xy 215.265 135.383676) (xy 215.302322 135.38) (xy 215.302333 135.38) (xy 215.413986 135.369003)
(xy 215.557247 135.325546) (xy 215.689276 135.254974) (xy 215.805001 135.160001) (xy 215.828804 135.130997) (xy 217.681004 133.278798)
(xy 217.710001 133.255001) (xy 217.804974 133.139276) (xy 217.875546 133.007247) (xy 217.919003 132.863986) (xy 217.93 132.752333)
(xy 217.93 132.752323) (xy 217.933676 132.715) (xy 217.93 132.677677) (xy 217.93 128.973711) (xy 217.973937 128.929774)
(xy 217.93 132.752323) (xy 217.933676 132.715) (xy 217.93 132.677677) (xy 217.93 131.80189) (xy 220.808524 131.80189)
(xy 220.853175 131.949099) (xy 220.978359 132.21192) (xy 221.152412 132.445269) (xy 221.368645 132.640178) (xy 221.618748 132.789157)
(xy 221.893109 132.886481) (xy 222.123 132.765814) (xy 222.123 131.572) (xy 222.377 131.572) (xy 222.377 132.765814)
(xy 222.606891 132.886481) (xy 222.881252 132.789157) (xy 223.131355 132.640178) (xy 223.347588 132.445269) (xy 223.521641 132.21192)
(xy 223.646825 131.949099) (xy 223.691476 131.80189) (xy 223.570155 131.572) (xy 222.377 131.572) (xy 222.123 131.572)
(xy 220.929845 131.572) (xy 220.808524 131.80189) (xy 217.93 131.80189) (xy 217.93 128.973711) (xy 217.973937 128.929774)
(xy 218.087205 128.760256) (xy 218.165226 128.571898) (xy 218.205 128.371939) (xy 218.205 128.168061) (xy 218.165226 127.968102)
(xy 218.087205 127.779744) (xy 217.973937 127.610226) (xy 217.829774 127.466063) (xy 217.660256 127.352795) (xy 217.471898 127.274774)
(xy 217.271939 127.235) (xy 217.068061 127.235) (xy 216.878965 127.272613) (xy 219.969688 124.18189) (xy 230.333524 124.18189)
(xy 230.378175 124.329099) (xy 230.503359 124.59192) (xy 230.677412 124.825269) (xy 230.893645 125.020178) (xy 231.143748 125.169157)
(xy 231.418109 125.266481) (xy 231.648 125.145814) (xy 231.648 123.952) (xy 230.454845 123.952) (xy 230.333524 124.18189)
(xy 219.969688 124.18189) (xy 229.601579 114.55) (xy 230.290375 114.55)
(xy 217.271939 127.235) (xy 217.068061 127.235) (xy 216.878965 127.272613) (xy 219.075 125.076579) (xy 221.365001 127.36658)
(xy 221.365001 127.420375) (xy 221.275518 127.429188) (xy 221.15582 127.465498) (xy 221.045506 127.524463) (xy 220.948815 127.603815)
(xy 220.869463 127.700506) (xy 220.810498 127.81082) (xy 220.774188 127.930518) (xy 220.761928 128.055) (xy 220.761928 129.755)
(xy 220.774188 129.879482) (xy 220.810498 129.99918) (xy 220.869463 130.109494) (xy 220.948815 130.206185) (xy 221.045506 130.285537)
(xy 221.15582 130.344502) (xy 221.236466 130.368966) (xy 221.152412 130.444731) (xy 220.978359 130.67808) (xy 220.853175 130.940901)
(xy 220.808524 131.08811) (xy 220.929845 131.318) (xy 222.123 131.318) (xy 222.123 131.298) (xy 222.377 131.298)
(xy 222.377 131.318) (xy 223.570155 131.318) (xy 223.691476 131.08811) (xy 223.646825 130.940901) (xy 223.521641 130.67808)
(xy 223.347588 130.444731) (xy 223.263534 130.368966) (xy 223.34418 130.344502) (xy 223.454494 130.285537) (xy 223.551185 130.206185)
(xy 223.630537 130.109494) (xy 223.689502 129.99918) (xy 223.725812 129.879482) (xy 223.738072 129.755) (xy 223.738072 128.055)
(xy 223.725812 127.930518) (xy 223.689502 127.81082) (xy 223.630537 127.700506) (xy 223.551185 127.603815) (xy 223.454494 127.524463)
(xy 223.34418 127.465498) (xy 223.224482 127.429188) (xy 223.135 127.420375) (xy 223.135 127.043466) (xy 223.139281 126.999999)
(xy 223.135 126.956533) (xy 223.135 126.956523) (xy 223.122195 126.82651) (xy 223.071589 126.659687) (xy 222.989411 126.505941)
(xy 222.931639 126.435546) (xy 222.906532 126.404953) (xy 222.90653 126.404951) (xy 222.878817 126.371183) (xy 222.845049 126.34347)
(xy 220.683469 124.18189) (xy 230.333524 124.18189) (xy 230.378175 124.329099) (xy 230.503359 124.59192) (xy 230.677412 124.825269)
(xy 230.893645 125.020178) (xy 231.143748 125.169157) (xy 231.418109 125.266481) (xy 231.648 125.145814) (xy 231.648 123.952)
(xy 230.454845 123.952) (xy 230.333524 124.18189) (xy 220.683469 124.18189) (xy 220.326578 123.825) (xy 229.601579 114.55)
(xy 230.290375 114.55)
)
)
(filled_polygon
@ -4010,7 +4186,8 @@
(xy 226.015273 110.48832) (xy 225.780241 110.645363) (xy 225.580363 110.845241) (xy 225.42332 111.080273) (xy 225.315147 111.341426)
(xy 225.26 111.618665) (xy 225.26 111.901335) (xy 225.315147 112.178574) (xy 225.42332 112.439727) (xy 225.580363 112.674759)
(xy 225.780241 112.874637) (xy 226.015273 113.03168) (xy 226.276426 113.139853) (xy 226.553665 113.195) (xy 226.836335 113.195)
(xy 226.871439 113.188017) (xy 227.665921 113.9825) (xy 213.628422 128.02) (xy 202.625078 128.02) (xy 202.514608 127.885392)
(xy 226.871439 113.188017) (xy 227.665921 113.9825) (xy 218.479959 123.168463) (xy 218.479953 123.168468) (xy 218.479949 123.168472)
(xy 218.446183 123.196183) (xy 218.418472 123.229949) (xy 213.628422 128.02) (xy 202.625078 128.02) (xy 202.514608 127.885392)
(xy 202.296101 127.706068) (xy 202.166655 127.636878) (xy 202.184227 127.62943) (xy 202.417662 127.470673) (xy 202.615639 127.269425)
(xy 202.770551 127.033421) (xy 202.876444 126.77173) (xy 202.886904 126.714039) (xy 202.764915 126.492) (xy 201.422 126.492)
(xy 201.422 126.512) (xy 201.168 126.512) (xy 201.168 126.492) (xy 199.825085 126.492) (xy 199.703096 126.714039)
@ -4063,22 +4240,6 @@
(xy 232.554887 99.457183) (xy 232.767608 99.282608) (xy 232.942183 99.069887) (xy 233.02 98.9243)
)
)
(filled_polygon
(pts
(xy 154.58 114.636159) (xy 154.579999 116.503841) (xy 154.449744 116.557795) (xy 154.280226 116.671063) (xy 154.136063 116.815226)
(xy 154.022795 116.984744) (xy 153.944774 117.173102) (xy 153.905 117.373061) (xy 153.905 117.576939) (xy 153.944774 117.776898)
(xy 154.022795 117.965256) (xy 154.136063 118.134774) (xy 154.280226 118.278937) (xy 154.449744 118.392205) (xy 154.638102 118.470226)
(xy 154.662108 118.475001) (xy 151.269407 118.475001) (xy 151.239853 118.326426) (xy 151.13168 118.065273) (xy 150.974637 117.830241)
(xy 150.774759 117.630363) (xy 150.539727 117.47332) (xy 150.278574 117.365147) (xy 150.001335 117.31) (xy 149.718665 117.31)
(xy 149.441426 117.365147) (xy 149.180273 117.47332) (xy 148.945241 117.630363) (xy 148.745363 117.830241) (xy 148.725479 117.86)
(xy 146.416579 117.86) (xy 145.758966 117.202387) (xy 145.948061 117.24) (xy 146.151939 117.24) (xy 146.351898 117.200226)
(xy 146.540256 117.122205) (xy 146.709774 117.008937) (xy 146.753711 116.965) (xy 152.165682 116.965) (xy 152.203004 116.968676)
(xy 152.240326 116.965) (xy 152.240337 116.965) (xy 152.35199 116.954003) (xy 152.495251 116.910546) (xy 152.62728 116.839974)
(xy 152.743005 116.745001) (xy 152.766808 116.715997) (xy 154.271006 115.2118) (xy 154.300003 115.188003) (xy 154.394976 115.072278)
(xy 154.465548 114.940249) (xy 154.509005 114.796988) (xy 154.520002 114.685335) (xy 154.520002 114.685327) (xy 154.523678 114.648002)
(xy 154.520067 114.611334)
)
)
(filled_polygon
(pts
(xy 157.95 110.631335) (xy 158.005147 110.908574) (xy 158.11332 111.169727) (xy 158.270363 111.404759) (xy 158.470241 111.604637)
@ -4097,6 +4258,22 @@
(xy 157.648937 111.100226) (xy 157.504774 110.956063) (xy 157.474181 110.935621) (xy 157.95 110.459802)
)
)
(filled_polygon
(pts
(xy 154.58 114.636159) (xy 154.579999 116.503841) (xy 154.449744 116.557795) (xy 154.280226 116.671063) (xy 154.136063 116.815226)
(xy 154.022795 116.984744) (xy 153.944774 117.173102) (xy 153.905 117.373061) (xy 153.905 117.576939) (xy 153.944774 117.776898)
(xy 154.022795 117.965256) (xy 154.136063 118.134774) (xy 154.280226 118.278937) (xy 154.449744 118.392205) (xy 154.638102 118.470226)
(xy 154.662108 118.475001) (xy 151.269407 118.475001) (xy 151.239853 118.326426) (xy 151.13168 118.065273) (xy 150.974637 117.830241)
(xy 150.774759 117.630363) (xy 150.539727 117.47332) (xy 150.278574 117.365147) (xy 150.001335 117.31) (xy 149.718665 117.31)
(xy 149.441426 117.365147) (xy 149.180273 117.47332) (xy 148.945241 117.630363) (xy 148.745363 117.830241) (xy 148.725479 117.86)
(xy 146.416579 117.86) (xy 145.758966 117.202387) (xy 145.948061 117.24) (xy 146.151939 117.24) (xy 146.351898 117.200226)
(xy 146.540256 117.122205) (xy 146.709774 117.008937) (xy 146.753711 116.965) (xy 152.165682 116.965) (xy 152.203004 116.968676)
(xy 152.240326 116.965) (xy 152.240337 116.965) (xy 152.35199 116.954003) (xy 152.495251 116.910546) (xy 152.62728 116.839974)
(xy 152.743005 116.745001) (xy 152.766808 116.715997) (xy 154.271006 115.2118) (xy 154.300003 115.188003) (xy 154.394976 115.072278)
(xy 154.465548 114.940249) (xy 154.509005 114.796988) (xy 154.520002 114.685335) (xy 154.520002 114.685327) (xy 154.523678 114.648002)
(xy 154.520067 114.611334)
)
)
(filled_polygon
(pts
(xy 153.179744 81.562205) (xy 153.368102 81.640226) (xy 153.568061 81.68) (xy 153.592378 81.68) (xy 153.563214 81.776141)
@ -4263,7 +4440,7 @@
(fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508))
(polygon
(pts
(xy 236.855 141.605) (xy 123.19 140.97) (xy 120.65 17.78) (xy 239.395 17.78)
(xy 236.855 141.605) (xy 123.19 140.97) (xy 120.65 19.685) (xy 239.395 19.685)
)
)
(filled_polygon
@ -4280,7 +4457,14 @@
(xy 166.586426 137.269853) (xy 166.863665 137.325) (xy 167.146335 137.325) (xy 167.423574 137.269853) (xy 167.684727 137.16168)
(xy 167.919759 137.004637) (xy 168.119637 136.804759) (xy 168.223043 136.65) (xy 169.310682 136.65) (xy 169.348004 136.653676)
(xy 169.385326 136.65) (xy 169.385337 136.65) (xy 169.49699 136.639003) (xy 169.640251 136.595546) (xy 169.77228 136.524974)
(xy 169.888005 136.430001) (xy 169.911807 136.400998) (xy 170.781005 135.531801) (xy 170.810003 135.508003) (xy 170.840744 135.470545)
(xy 169.888005 136.430001) (xy 169.911807 136.400998) (xy 170.642933 135.669872) (xy 227.635 135.669872) (xy 227.635 136.110128)
(xy 227.72089 136.541925) (xy 227.889369 136.948669) (xy 228.133962 137.314729) (xy 228.445271 137.626038) (xy 228.811331 137.870631)
(xy 229.218075 138.03911) (xy 229.649872 138.125) (xy 230.090128 138.125) (xy 230.521925 138.03911) (xy 230.928669 137.870631)
(xy 231.294729 137.626038) (xy 231.606038 137.314729) (xy 231.850631 136.948669) (xy 232.01911 136.541925) (xy 232.105 136.110128)
(xy 232.105 135.669872) (xy 232.01911 135.238075) (xy 231.850631 134.831331) (xy 231.606038 134.465271) (xy 231.294729 134.153962)
(xy 230.928669 133.909369) (xy 230.521925 133.74089) (xy 230.090128 133.655) (xy 229.649872 133.655) (xy 229.218075 133.74089)
(xy 228.811331 133.909369) (xy 228.445271 134.153962) (xy 228.133962 134.465271) (xy 227.889369 134.831331) (xy 227.72089 135.238075)
(xy 227.635 135.669872) (xy 170.642933 135.669872) (xy 170.781005 135.531801) (xy 170.810003 135.508003) (xy 170.840744 135.470545)
(xy 170.904976 135.392279) (xy 170.975548 135.260249) (xy 170.997077 135.189275) (xy 171.019005 135.116988) (xy 171.030002 135.005335)
(xy 171.030002 135.005326) (xy 171.033678 134.968003) (xy 171.030002 134.93068) (xy 171.030002 134.30932) (xy 171.033678 134.271997)
(xy 171.030002 134.234674) (xy 171.030002 134.234665) (xy 171.019005 134.123012) (xy 170.975548 133.979751) (xy 170.904976 133.847722)
@ -4288,7 +4472,12 @@
(xy 170.274999 131.985001) (xy 170.303997 132.008799) (xy 170.390724 132.079974) (xy 170.522753 132.150546) (xy 170.666014 132.194003)
(xy 170.815 132.208677) (xy 170.852333 132.205) (xy 203.797678 132.205) (xy 203.835 132.208676) (xy 203.872322 132.205)
(xy 203.872333 132.205) (xy 203.983986 132.194003) (xy 204.127247 132.150546) (xy 204.259276 132.079974) (xy 204.375001 131.985001)
(xy 204.398804 131.955997) (xy 212.129802 124.225) (xy 212.191939 124.225) (xy 212.391898 124.185226) (xy 212.580256 124.107205)
(xy 204.398804 131.955997) (xy 204.552911 131.80189) (xy 220.808524 131.80189) (xy 220.853175 131.949099) (xy 220.978359 132.21192)
(xy 221.152412 132.445269) (xy 221.368645 132.640178) (xy 221.618748 132.789157) (xy 221.893109 132.886481) (xy 222.123 132.765814)
(xy 222.123 131.572) (xy 222.377 131.572) (xy 222.377 132.765814) (xy 222.606891 132.886481) (xy 222.881252 132.789157)
(xy 223.131355 132.640178) (xy 223.347588 132.445269) (xy 223.521641 132.21192) (xy 223.646825 131.949099) (xy 223.691476 131.80189)
(xy 223.570155 131.572) (xy 222.377 131.572) (xy 222.123 131.572) (xy 220.929845 131.572) (xy 220.808524 131.80189)
(xy 204.552911 131.80189) (xy 212.129802 124.225) (xy 212.191939 124.225) (xy 212.391898 124.185226) (xy 212.580256 124.107205)
(xy 212.749774 123.993937) (xy 212.893937 123.849774) (xy 213.007205 123.680256) (xy 213.085226 123.491898) (xy 213.125 123.291939)
(xy 213.125 123.088061) (xy 213.085226 122.888102) (xy 213.007205 122.699744) (xy 212.893937 122.530226) (xy 212.749774 122.386063)
(xy 212.580256 122.272795) (xy 212.391898 122.194774) (xy 212.191939 122.155) (xy 211.988061 122.155) (xy 211.788102 122.194774)
@ -4352,24 +4541,41 @@
(xy 216.252795 128.760256) (xy 216.366063 128.929774) (xy 216.510226 129.073937) (xy 216.679744 129.187205) (xy 216.868102 129.265226)
(xy 217.068061 129.305) (xy 217.271939 129.305) (xy 217.471898 129.265226) (xy 217.660256 129.187205) (xy 217.829774 129.073937)
(xy 217.973937 128.929774) (xy 218.087205 128.760256) (xy 218.165226 128.571898) (xy 218.205 128.371939) (xy 218.205 128.168061)
(xy 218.165226 127.968102) (xy 218.087205 127.779744) (xy 217.973937 127.610226) (xy 217.93 127.566289) (xy 217.93 124.18189)
(xy 230.333524 124.18189) (xy 230.378175 124.329099) (xy 230.503359 124.59192) (xy 230.677412 124.825269) (xy 230.893645 125.020178)
(xy 231.143748 125.169157) (xy 231.418109 125.266481) (xy 231.648 125.145814) (xy 231.648 123.952) (xy 230.454845 123.952)
(xy 230.333524 124.18189) (xy 217.93 124.18189) (xy 217.93 123.258711) (xy 217.973937 123.214774) (xy 218.087205 123.045256)
(xy 218.165226 122.856898) (xy 218.205 122.656939) (xy 218.205 122.453061) (xy 218.165226 122.253102) (xy 218.087205 122.064744)
(xy 218.074013 122.045) (xy 230.496822 122.045) (xy 230.621525 122.231632) (xy 230.828368 122.438475) (xy 231.010534 122.560195)
(xy 230.893645 122.629822) (xy 230.677412 122.824731) (xy 230.503359 123.05808) (xy 230.378175 123.320901) (xy 230.333524 123.46811)
(xy 230.454845 123.698) (xy 231.648 123.698) (xy 231.648 123.678) (xy 231.902 123.678) (xy 231.902 123.698)
(xy 231.922 123.698) (xy 231.922 123.952) (xy 231.902 123.952) (xy 231.902 125.145814) (xy 232.131891 125.266481)
(xy 232.406252 125.169157) (xy 232.656355 125.020178) (xy 232.872588 124.825269) (xy 233.02 124.627637) (xy 233.02 139.04)
(xy 127.66 139.04) (xy 127.66 124.627637) (xy 127.807412 124.825269) (xy 128.023645 125.020178) (xy 128.273748 125.169157)
(xy 128.548109 125.266481) (xy 128.778 125.145814) (xy 128.778 123.952) (xy 129.032 123.952) (xy 129.032 125.145814)
(xy 129.261891 125.266481) (xy 129.536252 125.169157) (xy 129.786355 125.020178) (xy 130.002588 124.825269) (xy 130.176641 124.59192)
(xy 130.301825 124.329099) (xy 130.346476 124.18189) (xy 130.225155 123.952) (xy 129.032 123.952) (xy 128.778 123.952)
(xy 128.758 123.952) (xy 128.758 123.698) (xy 128.778 123.698) (xy 128.778 123.678) (xy 129.032 123.678)
(xy 129.032 123.698) (xy 130.225155 123.698) (xy 130.346476 123.46811) (xy 130.301825 123.320901) (xy 130.176641 123.05808)
(xy 130.002588 122.824731) (xy 129.786355 122.629822) (xy 129.669466 122.560195) (xy 129.851632 122.438475) (xy 130.058475 122.231632)
(xy 130.183178 122.045) (xy 130.495199 122.045)
(xy 218.182511 128.055) (xy 220.761928 128.055) (xy 220.761928 129.755) (xy 220.774188 129.879482) (xy 220.810498 129.99918)
(xy 220.869463 130.109494) (xy 220.948815 130.206185) (xy 221.045506 130.285537) (xy 221.15582 130.344502) (xy 221.236466 130.368966)
(xy 221.152412 130.444731) (xy 220.978359 130.67808) (xy 220.853175 130.940901) (xy 220.808524 131.08811) (xy 220.929845 131.318)
(xy 222.123 131.318) (xy 222.123 131.298) (xy 222.377 131.298) (xy 222.377 131.318) (xy 223.570155 131.318)
(xy 223.691476 131.08811) (xy 223.646825 130.940901) (xy 223.521641 130.67808) (xy 223.347588 130.444731) (xy 223.263534 130.368966)
(xy 223.34418 130.344502) (xy 223.454494 130.285537) (xy 223.551185 130.206185) (xy 223.630537 130.109494) (xy 223.689502 129.99918)
(xy 223.725812 129.879482) (xy 223.738072 129.755) (xy 223.738072 128.055) (xy 223.725812 127.930518) (xy 223.689502 127.81082)
(xy 223.630537 127.700506) (xy 223.551185 127.603815) (xy 223.454494 127.524463) (xy 223.34418 127.465498) (xy 223.224482 127.429188)
(xy 223.1 127.416928) (xy 221.4 127.416928) (xy 221.275518 127.429188) (xy 221.15582 127.465498) (xy 221.045506 127.524463)
(xy 220.948815 127.603815) (xy 220.869463 127.700506) (xy 220.810498 127.81082) (xy 220.774188 127.930518) (xy 220.761928 128.055)
(xy 218.182511 128.055) (xy 218.165226 127.968102) (xy 218.087205 127.779744) (xy 217.973937 127.610226) (xy 217.93 127.566289)
(xy 217.93 124.18189) (xy 230.333524 124.18189) (xy 230.378175 124.329099) (xy 230.503359 124.59192) (xy 230.677412 124.825269)
(xy 230.893645 125.020178) (xy 231.143748 125.169157) (xy 231.418109 125.266481) (xy 231.648 125.145814) (xy 231.648 123.952)
(xy 230.454845 123.952) (xy 230.333524 124.18189) (xy 217.93 124.18189) (xy 217.93 123.258711) (xy 217.973937 123.214774)
(xy 218.087205 123.045256) (xy 218.165226 122.856898) (xy 218.205 122.656939) (xy 218.205 122.453061) (xy 218.165226 122.253102)
(xy 218.087205 122.064744) (xy 218.074013 122.045) (xy 230.496822 122.045) (xy 230.621525 122.231632) (xy 230.828368 122.438475)
(xy 231.010534 122.560195) (xy 230.893645 122.629822) (xy 230.677412 122.824731) (xy 230.503359 123.05808) (xy 230.378175 123.320901)
(xy 230.333524 123.46811) (xy 230.454845 123.698) (xy 231.648 123.698) (xy 231.648 123.678) (xy 231.902 123.678)
(xy 231.902 123.698) (xy 231.922 123.698) (xy 231.922 123.952) (xy 231.902 123.952) (xy 231.902 125.145814)
(xy 232.131891 125.266481) (xy 232.406252 125.169157) (xy 232.656355 125.020178) (xy 232.872588 124.825269) (xy 233.02 124.627637)
(xy 233.02 139.04) (xy 127.66 139.04) (xy 127.66 135.669872) (xy 128.575 135.669872) (xy 128.575 136.110128)
(xy 128.66089 136.541925) (xy 128.829369 136.948669) (xy 129.073962 137.314729) (xy 129.385271 137.626038) (xy 129.751331 137.870631)
(xy 130.158075 138.03911) (xy 130.589872 138.125) (xy 131.030128 138.125) (xy 131.461925 138.03911) (xy 131.868669 137.870631)
(xy 132.234729 137.626038) (xy 132.546038 137.314729) (xy 132.790631 136.948669) (xy 132.95911 136.541925) (xy 133.045 136.110128)
(xy 133.045 135.669872) (xy 132.95911 135.238075) (xy 132.790631 134.831331) (xy 132.546038 134.465271) (xy 132.234729 134.153962)
(xy 131.868669 133.909369) (xy 131.461925 133.74089) (xy 131.030128 133.655) (xy 130.589872 133.655) (xy 130.158075 133.74089)
(xy 129.751331 133.909369) (xy 129.385271 134.153962) (xy 129.073962 134.465271) (xy 128.829369 134.831331) (xy 128.66089 135.238075)
(xy 128.575 135.669872) (xy 127.66 135.669872) (xy 127.66 124.627637) (xy 127.807412 124.825269) (xy 128.023645 125.020178)
(xy 128.273748 125.169157) (xy 128.548109 125.266481) (xy 128.778 125.145814) (xy 128.778 123.952) (xy 129.032 123.952)
(xy 129.032 125.145814) (xy 129.261891 125.266481) (xy 129.536252 125.169157) (xy 129.786355 125.020178) (xy 130.002588 124.825269)
(xy 130.176641 124.59192) (xy 130.301825 124.329099) (xy 130.346476 124.18189) (xy 130.225155 123.952) (xy 129.032 123.952)
(xy 128.778 123.952) (xy 128.758 123.952) (xy 128.758 123.698) (xy 128.778 123.698) (xy 128.778 123.678)
(xy 129.032 123.678) (xy 129.032 123.698) (xy 130.225155 123.698) (xy 130.346476 123.46811) (xy 130.301825 123.320901)
(xy 130.176641 123.05808) (xy 130.002588 122.824731) (xy 129.786355 122.629822) (xy 129.669466 122.560195) (xy 129.851632 122.438475)
(xy 130.058475 122.231632) (xy 130.183178 122.045) (xy 130.495199 122.045)
)
)
(filled_polygon

View File

@ -2361,4 +2361,37 @@ F 3 "~" H 7850 6150 50 0001 C CNN
1 7850 6150
1 0 0 -1
$EndComp
$Comp
L Connector_Generic:Conn_01x02 J4
U 1 1 610ED666
P 3350 6000
F 0 "J4" H 3430 5992 50 0000 L CNN
F 1 "Conn_01x02" H 3430 5901 50 0000 L CNN
F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 3350 6000 50 0001 C CNN
F 3 "~" H 3350 6000 50 0001 C CNN
1 3350 6000
1 0 0 -1
$EndComp
$Comp
L power:GND #PWR09
U 1 1 6123C36F
P 3150 6100
F 0 "#PWR09" H 3150 5850 50 0001 C CNN
F 1 "GND" H 3155 5927 50 0000 C CNN
F 2 "" H 3150 6100 50 0001 C CNN
F 3 "" H 3150 6100 50 0001 C CNN
1 3150 6100
1 0 0 -1
$EndComp
$Comp
L power:+5V #PWR08
U 1 1 6123CCA1
P 3150 6000
F 0 "#PWR08" H 3150 5850 50 0001 C CNN
F 1 "+5V" H 3165 6173 50 0000 C CNN
F 2 "" H 3150 6000 50 0001 C CNN
F 3 "" H 3150 6000 50 0001 C CNN
1 3150 6000
1 0 0 -1
$EndComp
$EndSCHEMATC

View File

@ -2317,4 +2317,48 @@ F 3 "" H 6450 6850 50 0001 C CNN
$EndComp
Wire Wire Line
6050 6850 6450 6850
$Comp
L Mechanical:MountingHole H2
U 1 1 610BE5D7
P 8600 6150
F 0 "H2" H 8700 6196 50 0000 L CNN
F 1 "MountingHole" H 8700 6105 50 0000 L CNN
F 2 "MountingHole:MountingHole_3.2mm_M3" H 8600 6150 50 0001 C CNN
F 3 "~" H 8600 6150 50 0001 C CNN
1 8600 6150
1 0 0 -1
$EndComp
$Comp
L Mechanical:MountingHole H3
U 1 1 610C06F0
P 9450 6150
F 0 "H3" H 9550 6196 50 0000 L CNN
F 1 "MountingHole" H 9550 6105 50 0000 L CNN
F 2 "MountingHole:MountingHole_3.2mm_M3" H 9450 6150 50 0001 C CNN
F 3 "~" H 9450 6150 50 0001 C CNN
1 9450 6150
1 0 0 -1
$EndComp
$Comp
L Mechanical:MountingHole H4
U 1 1 610C203A
P 10300 6150
F 0 "H4" H 10400 6196 50 0000 L CNN
F 1 "MountingHole" H 10400 6105 50 0000 L CNN
F 2 "MountingHole:MountingHole_3.2mm_M3" H 10300 6150 50 0001 C CNN
F 3 "~" H 10300 6150 50 0001 C CNN
1 10300 6150
1 0 0 -1
$EndComp
$Comp
L Mechanical:MountingHole H1
U 1 1 610C54A4
P 7850 6150
F 0 "H1" H 7950 6196 50 0000 L CNN
F 1 "MountingHole" H 7950 6105 50 0000 L CNN
F 2 "MountingHole:MountingHole_3.2mm_M3" H 7850 6150 50 0001 C CNN
F 3 "~" H 7850 6150 50 0001 C CNN
1 7850 6150
1 0 0 -1
$EndComp
$EndSCHEMATC

29
src/disp.cpp Normal file
View File

@ -0,0 +1,29 @@
#include "disp.h"
byte buffer[7]; // "width,height,data[5]" single character buffer.
unsigned char reverse(unsigned char b) {
b = (b & 0xF0) >> 4 | (b & 0x0F) << 4;
b = (b & 0xCC) >> 2 | (b & 0x33) << 2;
b = (b & 0xAA) >> 1 | (b & 0x55) << 1;
return b;
}
void printCharOffset(char c, int offset, LedControl lc)
{
if (c < 32)
return;
c -= 32;
memcpy_P(buffer, CH + 7 * c, 7);
for (int i = 0; i <= buffer[0]; i++)
{
lc.setRow(0, i+offset, reverse(buffer[i + 2]));
}
}
void printChar(char c, LedControl lc)
{
printCharOffset(c,2,lc);
}

116
src/disp.h Normal file
View File

@ -0,0 +1,116 @@
#ifndef disp_h
#define disp_h
#include <avr/pgmspace.h>
#include "LedControl.h"
// Data array is stored in program memory (see memcpy_P for access).
// Parameters are width, height, character data...
// There is a speed improvement for characters with height 8 bits see lib.
// source: https://www.best-microcontroller-projects.com/max7219.html
// For LedControl, I have to mirror each character.
PROGMEM const unsigned char CH[] = {
3, 8, B0000000, B0000000, B0000000, B0000000, B0000000, // space
1, 8, B1011111, B0000000, B0000000, B0000000, B0000000, // !
3, 8, B0000011, B0000000, B0000011, B0000000, B0000000, // "
5, 8, B0010100, B0111110, B0010100, B0111110, B0010100, // #
4, 8, B0100100, B1101010, B0101011, B0010010, B0000000, // $
5, 8, B1100011, B0010011, B0001000, B1100100, B1100011, // %
5, 8, B0110110, B1001001, B1010110, B0100000, B1010000, // &
1, 8, B0000011, B0000000, B0000000, B0000000, B0000000, // '
3, 8, B0011100, B0100010, B1000001, B0000000, B0000000, // (
3, 8, B1000001, B0100010, B0011100, B0000000, B0000000, // )
5, 8, B0101000, B0011000, B0001110, B0011000, B0101000, // *
5, 8, B0001000, B0001000, B0111110, B0001000, B0001000, // +
2, 8, B10110000, B1110000, B0000000, B0000000, B0000000, // ,
4, 8, B0001000, B0001000, B0001000, B0001000, B0000000, // -
2, 8, B1100000, B1100000, B0000000, B0000000, B0000000, // .
4, 8, B1100000, B0011000, B0000110, B0000001, B0000000, // /
4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // 0
3, 8, B1000010, B1111111, B1000000, B0000000, B0000000, // 1
4, 8, B1100010, B1010001, B1001001, B1000110, B0000000, // 2
4, 8, B0100010, B1000001, B1001001, B0110110, B0000000, // 3
4, 8, B0011000, B0010100, B0010010, B1111111, B0000000, // 4
4, 8, B0100111, B1000101, B1000101, B0111001, B0000000, // 5
4, 8, B0111110, B1001001, B1001001, B0110000, B0000000, // 6
4, 8, B1100001, B0010001, B0001001, B0000111, B0000000, // 7
4, 8, B0110110, B1001001, B1001001, B0110110, B0000000, // 8
4, 8, B0000110, B1001001, B1001001, B0111110, B0000000, // 9
2, 8, B01010000, B0000000, B0000000, B0000000, B0000000, // :
2, 8, B10000000, B01010000, B0000000, B0000000, B0000000, // ;
3, 8, B0010000, B0101000, B1000100, B0000000, B0000000, // <
3, 8, B0010100, B0010100, B0010100, B0000000, B0000000, // =
3, 8, B1000100, B0101000, B0010000, B0000000, B0000000, // >
4, 8, B0000010, B1011001, B0001001, B0000110, B0000000, // ?
5, 8, B0111110, B1001001, B1010101, B1011101, B0001110, // @
4, 8, B1111110, B0010001, B0010001, B1111110, B0000000, // A
4, 8, B1111111, B1001001, B1001001, B0110110, B0000000, // B
4, 8, B0111110, B1000001, B1000001, B0100010, B0000000, // C
4, 8, B1111111, B1000001, B1000001, B0111110, B0000000, // D
4, 8, B1111111, B1001001, B1001001, B1000001, B0000000, // E
4, 8, B1111111, B0001001, B0001001, B0000001, B0000000, // F
4, 8, B0111110, B1000001, B1001001, B1111010, B0000000, // G
4, 8, B1111111, B0001000, B0001000, B1111111, B0000000, // H
3, 8, B1000001, B1111111, B1000001, B0000000, B0000000, // I
4, 8, B0110000, B1000000, B1000001, B0111111, B0000000, // J
4, 8, B1111111, B0001000, B0010100, B1100011, B0000000, // K
4, 8, B1111111, B1000000, B1000000, B1000000, B0000000, // L
5, 8, B1111111, B0000010, B0001100, B0000010, B1111111, // M
5, 8, B1111111, B0000100, B0001000, B0010000, B1111111, // N
4, 8, B0111110, B1000001, B1000001, B0111110, B0000000, // O
4, 8, B1111111, B0001001, B0001001, B0000110, B0000000, // P
4, 8, B0111110, B1000001, B1000001, B10111110, B0000000, // Q
4, 8, B1111111, B0001001, B0001001, B1110110, B0000000, // R
4, 8, B1000110, B1001001, B1001001, B0110010, B0000000, // S
5, 8, B0000001, B0000001, B1111111, B0000001, B0000001, // T
4, 8, B0111111, B1000000, B1000000, B0111111, B0000000, // U
5, 8, B0001111, B0110000, B1000000, B0110000, B0001111, // V
5, 8, B0111111, B1000000, B0111000, B1000000, B0111111, // W
5, 8, B1100011, B0010100, B0001000, B0010100, B1100011, // X
5, 8, B0000111, B0001000, B1110000, B0001000, B0000111, // Y
4, 8, B1100001, B1010001, B1001001, B1000111, B0000000, // Z
2, 8, B1111111, B1000001, B0000000, B0000000, B0000000, // [
4, 8, B0000001, B0000110, B0011000, B1100000, B0000000, // backslash
2, 8, B1000001, B1111111, B0000000, B0000000, B0000000, // ]
3, 8, B0000010, B0000001, B0000010, B0000000, B0000000, // hat
4, 8, B1000000, B1000000, B1000000, B1000000, B0000000, // _
2, 8, B0000001, B0000010, B0000000, B0000000, B0000000, // `
4, 8, B0100000, B1010100, B1010100, B1111000, B0000000, // a
4, 8, B1111111, B1000100, B1000100, B0111000, B0000000, // b
4, 8, B0111000, B1000100, B1000100, B0000000, B0000000, // c // JFM MOD.
4, 8, B0111000, B1000100, B1000100, B1111111, B0000000, // d
4, 8, B0111000, B1010100, B1010100, B0011000, B0000000, // e
3, 8, B0000100, B1111110, B0000101, B0000000, B0000000, // f
4, 8, B10011000, B10100100, B10100100, B01111000, B0000000, // g
4, 8, B1111111, B0000100, B0000100, B1111000, B0000000, // h
3, 8, B1000100, B1111101, B1000000, B0000000, B0000000, // i
4, 8, B1000000, B10000000, B10000100, B1111101, B0000000, // j
4, 8, B1111111, B0010000, B0101000, B1000100, B0000000, // k
3, 8, B1000001, B1111111, B1000000, B0000000, B0000000, // l
5, 8, B1111100, B0000100, B1111100, B0000100, B1111000, // m
4, 8, B1111100, B0000100, B0000100, B1111000, B0000000, // n
4, 8, B0111000, B1000100, B1000100, B0111000, B0000000, // o
4, 8, B11111100, B0100100, B0100100, B0011000, B0000000, // p
4, 8, B0011000, B0100100, B0100100, B11111100, B0000000, // q
4, 8, B1111100, B0001000, B0000100, B0000100, B0000000, // r
4, 8, B1001000, B1010100, B1010100, B0100100, B0000000, // s
3, 8, B0000100, B0111111, B1000100, B0000000, B0000000, // t
4, 8, B0111100, B1000000, B1000000, B1111100, B0000000, // u
5, 8, B0011100, B0100000, B1000000, B0100000, B0011100, // v
5, 8, B0111100, B1000000, B0111100, B1000000, B0111100, // w
5, 8, B1000100, B0101000, B0010000, B0101000, B1000100, // x
4, 8, B10011100, B10100000, B10100000, B1111100, B0000000, // y
3, 8, B1100100, B1010100, B1001100, B0000000, B0000000, // z
3, 8, B0001000, B0110110, B1000001, B0000000, B0000000, // {
1, 8, B1111111, B0000000, B0000000, B0000000, B0000000, // |
3, 8, B1000001, B0110110, B0001000, B0000000, B0000000, // }
4, 8, B0001000, B0000100, B0001000, B0000100, B0000000, // ~
};
void printCharOffset(char c, int offset, LedControl lc);
void printChar(char c,LedControl lc);
#endif

View File

@ -11,6 +11,8 @@
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "disp.h"
/*
Now we need a LedControl to work with.
@ -41,16 +43,17 @@ DateTime now;
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET D8-1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// Max7219 PINs:
#define MAX_CLK D5
#define MAX_CS D3
#define MAX_CS D6
#define MAX_DIN D7
LedControl lc = LedControl(MAX_DIN, MAX_CLK, MAX_CS, 1);
/* we always wait a bit between updates of the display */
unsigned long delaytime = 500;
@ -67,6 +70,8 @@ Serial.begin(115200);
//wifiManager.resetSettings();
//set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode
/*
wifiManager.setAPCallback(configModeCallback);
@ -87,12 +92,16 @@ Serial.begin(115200);
//if you get here you have connected to the WiFi
Serial.println("connected...yeey :)");
*/
/* The MAX72XX is in power-saving mode on startup, we have to do a wakeup call */
lc.shutdown(0, false);
int devices = lc.getDeviceCount();
Serial.print("devices: ");
Serial.println(devices,10);
/* Set the brightness to a medium values */
lc.setIntensity(0, 15);
@ -117,16 +126,6 @@ Serial.begin(115200);
}
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
return;
}
// Show initial display buffer contents on the screen --
// the library initializes this with an Adafruit splash screen.
display.display();
@ -172,75 +171,181 @@ void printNumber(int v) {
lc.setDigit(0,0,(byte)ones,false);
}
/*
x and y swapped
*/
void setColumn(LedControl lc,int addr, int col, byte value) {
byte val;
if(col<0 || col>7)
return;
for(int row=7;row>=0;row--) {
val=value >> (7-row);
val=val & 0x01;
lc.setLed(addr,col,row,val);
}
}
//int two[] = {0,130,193,161,145,137,135,0};
int two[] = {65,131,133,137,145,97};
void drawChar(int arr[],int size,int offset) {
lc.clearDisplay(0);
for (int i=0;i<size;i++) {
//lc.setColumn(0,i,two[i]);
setColumn(lc,0,i+offset,arr[i]);
}
/*
lc.setLed(0,2,0,true);
lc.setLed(0,3,0,true);
lc.setLed(0,4,0,true);
lc.setLed(0,5,0,true);
lc.setLed(0,1,1,true);
lc.setLed(0,6,1,true);
lc.setLed(0,6,2,true);
lc.setLed(0,5,3,true);
lc.setLed(0,4,4,true);
lc.setLed(0,3,5,true);
lc.setLed(0,2,6,true);
lc.setLed(0,1,7,true);
lc.setLed(0,2,7,true);
lc.setLed(0,3,7,true);
lc.setLed(0,4,7,true);
lc.setLed(0,5,7,true);
lc.setLed(0,6,7,true);
*/
}
void writeArduinoOnMatrix() {
/* here is the data for the characters */
byte a[5]={B01111110,B10001000,B10001000,B10001000,B01111110};
byte r[5] ={B00111110,B00010000,B00100000,B00100000,B00010000};
byte d[5]={B00011100,B00100010,B00100010,B00010010,B11111110};
byte u[5]={B00111100,B00000010,B00000010,B00000100,B00111110};
byte i[5]={B00000000,B00100010,B10111110,B00000010,B00000000};
byte n[5]={B00111110,B00010000,B00100000,B00100000,B00011110};
byte o[5]={B00011100,B00100010,B00100010,B00100010,B00011100};
/* now display them one by one with a small delay */
lc.setRow(0,0,a[0]);
lc.setRow(0,1,a[1]);
lc.setRow(0,2,a[2]);
lc.setRow(0,3,a[3]);
lc.setRow(0,4,a[4]);
delay(delaytime);
lc.setRow(0,0,r[0]);
lc.setRow(0,1,r[1]);
lc.setRow(0,2,r[2]);
lc.setRow(0,3,r[3]);
lc.setRow(0,4,r[4]);
delay(delaytime);
lc.setRow(0,0,d[0]);
lc.setRow(0,1,d[1]);
lc.setRow(0,2,d[2]);
lc.setRow(0,3,d[3]);
lc.setRow(0,4,d[4]);
delay(delaytime);
lc.setRow(0,0,u[0]);
lc.setRow(0,1,u[1]);
lc.setRow(0,2,u[2]);
lc.setRow(0,3,u[3]);
lc.setRow(0,4,u[4]);
delay(delaytime);
lc.setRow(0,0,i[0]);
lc.setRow(0,1,i[1]);
lc.setRow(0,2,i[2]);
lc.setRow(0,3,i[3]);
lc.setRow(0,4,i[4]);
delay(delaytime);
lc.setRow(0,0,n[0]);
lc.setRow(0,1,n[1]);
lc.setRow(0,2,n[2]);
lc.setRow(0,3,n[3]);
lc.setRow(0,4,n[4]);
delay(delaytime);
lc.setRow(0,0,o[0]);
lc.setRow(0,1,o[1]);
lc.setRow(0,2,o[2]);
lc.setRow(0,3,o[3]);
lc.setRow(0,4,o[4]);
delay(delaytime);
lc.setRow(0,0,0);
lc.setRow(0,1,0);
lc.setRow(0,2,0);
lc.setRow(0,3,0);
lc.setRow(0,4,0);
delay(delaytime);
}
void loop()
{
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since midnight 1/1/1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now + TimeSpan(7,12,30,6));
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.println();
//lc.setDigit(0,3,now.hour()/10,false);
//lc.setDigit(0,2,now.hour()%10,false);
//lc.setDigit(0,1,now.minute()/10,false);
//lc.setDigit(0,0,now.minute()%10,false);
/*
for (int i=0;i<8;i++) {
for (int j=0;j<8;j++) {
lc.clearDisplay(0);
//lc.setDigit(i,j,now.second()%10,true);
//lc.setLed(i,j,0,false);
lc.setLed(0,j,i,true);
delay(100);
}
}*/
//drawChar(two,6,1);
//writeArduinoOnMatrix();
display.clearDisplay();
display.setTextSize(1); // Normal 1:1 pixel scale
display.setTextColor(WHITE); // Draw white text
display.setCursor(0, 0); // Start at top-left corner
display.cp437(true); // Use full 256 char 'Code Page 437' font
char buffer[20];
sprintf(buffer, "%02d:%02d:%02d %02d/%02d/%02d", now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());
display.write(buffer);
display.display();
lc.setDigit(0,3,now.hour()/10,false);
lc.setDigit(0,2,now.hour()%10,false);
lc.setDigit(0,1,now.minute()/10,false);
lc.setDigit(0,0,now.minute()%10,false);
int dl = 500;
printChar('1',lc);
delay(dl);
printChar('2',lc);
delay(dl);
printChar('3',lc);
delay(dl);
printChar('4',lc);
delay(dl);
printChar('5',lc);
delay(dl);
printChar('6',lc);
delay(dl);
printChar('7',lc);
delay(dl);
printChar('8',lc);
delay(dl);
printChar('9',lc);
delay(dl);
printChar('0',lc);
delay(dl);
/*
lc.setDigit(0,0,3,false);
@ -248,6 +353,8 @@ DateTime now = rtc.now();
lc.setDigit(0,2,1,false);
lc.setDigit(0,3,0,false);
*/
delay(1000);
//delay(1000);
}
}