fix rpi3 build, add some gcode stuffs

pull/239/head
connor rigby 2017-01-30 11:40:42 -08:00
parent dd0e3454b3
commit 8df4834b55
16 changed files with 117 additions and 53 deletions

2
.gitignore vendored
View File

@ -29,3 +29,5 @@ Makefile.bac
# releases generated by the Makefile
/release-*
images

1
apps/.gitignore vendored
View File

@ -1,2 +1,3 @@
NERVES_SYSTEM_*
nerves_system_br
nerves

View File

@ -23,8 +23,9 @@ defmodule Farmbot.Serial.Gcode.Handler do
@lint false
@spec handle_cast(any, state) :: {:noreply, state}
# Don't log messages there is to many.
def handle_cast({:debug_message, str}, state) do
Logger.debug ">> got a message from my arduino: #{str}"
IO.puts str
{:noreply, state}
end
@ -101,8 +102,15 @@ defmodule Farmbot.Serial.Gcode.Handler do
%{nerves: nerves, current: current, log: log ++ [{message, caller}]}}
end
def handle_cast({:unhandled_gcode, code}, state) do
Logger.debug ">> got an unhandled gcode! #{code}"
{:noreply, state}
end
def handle_cast(:dont_handle_me, state), do: {:noreply, state}
def handle_cast(event, state) do
Logger.debug ">> got an unhandled gcode! #{inspect event}"
Logger.debug ">> got an unhandled event! #{inspect event}"
{:noreply, state}
end

View File

@ -24,15 +24,28 @@ defmodule Farmbot.Serial.Gcode.Parser do
def parse_code("R03 Q" <> tag) do {:error, tag} end
def parse_code("R04") do {:busy, qtag()} end
def parse_code("R04 Q" <> tag) do {:busy, tag} end
def parse_code("R05" <> r) do
IO.puts r
:dont_handle_me # Dont care about this right now.
end
def parse_code("R06" <> r) do
IO.puts r
:dont_handle_me # Dont care about this right now.
end
def parse_code("R21 " <> params), do: parse_pvq(params, :report_parameter_value)
def parse_code("R31 " <> params), do: parse_pvq(params, :report_status_value)
def parse_code("R41 " <> params), do: parse_pvq(params, :report_pin_value)
def parse_code("R81 " <> params), do: parse_end_stops(params)
def parse_code("R82 " <> position), do: parse_report_current_position(position)
def parse_code("R82 " <> position) do
IO.puts position
parse_report_current_position(position)
end
def parse_code("R83 " <> v), do: {:report_software_version, String.to_integer(v)}
def parse_code("R83") do {:report_software_version, -1} end
def parse_code("R99 " <> message) do {:debug_message, message} end
def parse_code("Command" <> _), do: :dont_handle_me # I think this is a bug
def parse_code(code) do {:unhandled_gcode, code} end
@doc ~S"""

View File

@ -30,6 +30,7 @@ defmodule Farmbot.Mixfile do
start_permanent: Mix.env == :prod,
build_path: "../../_build/#{target(Mix.env)}",
deps_path: "../../deps/#{target(Mix.env)}",
images_path: "../../images",
config_path: "../../config/config.exs",
lockfile: "../../mix.lock",
aliases: aliases(Mix.env),
@ -72,7 +73,6 @@ defmodule Farmbot.Mixfile do
:vmq_commons,
:amnesia,
:gen_stage,
:nerves,
:"farmbot_system_#{target(Mix.env)}",
:farmbot_system,
:farmbot_auth,
@ -95,7 +95,6 @@ defmodule Farmbot.Mixfile do
{:quantum, ">= 1.8.1"}, # cron jobs
{:amnesia, github: "meh/amnesia"}, # database implementation
{:gen_stage, "0.11.0"},
{:nerves, "~> 0.4.0"},
{:credo, "0.6.0-rc1", only: [:dev, :test]},
{:ex_doc, "~> 0.14", only: :dev},
{:dialyxir, "~> 0.4", only: [:dev], runtime: false},

View File

@ -3,7 +3,7 @@ defmodule Farmbot.System.NervesCommon.Network do
Common network functionality for Nerves Devices.
"""
defmacro __using__(target: _target) do
defmacro __using__(target: _target, modules: modules) do
quote do
@behaviour Farmbot.System.Network
use GenServer
@ -14,6 +14,11 @@ defmodule Farmbot.System.NervesCommon.Network do
def start_link(), do: GenServer.start_link(__MODULE__, [], name: __MODULE__)
def init(_) do
for module <- unquote(modules) do
System.cmd("modprobe", [module])
end
# wait for a few seconds for everything to settle
Process.sleep(5000)
GenEvent.add_handler(event_manager(),
Farmbot.System.NervesCommon.EventManager, [])
# Farmbot.System.NervesCommon.Cell.start_link

View File

@ -1,3 +1,3 @@
defmodule Module.concat([Farmbot, System, "rpi3", Network]) do
use Farmbot.System.NervesCommon.Network, target: "rpi3"
use Farmbot.System.NervesCommon.Network, target: "rpi3", modules: ["brcmfmac"]
end

View File

@ -111,7 +111,7 @@ CONFIG_USB_NET_SMSC95XX=y
# CONFIG_USB_NET_NET1080 is not set
# CONFIG_USB_NET_CDC_SUBSET is not set
# CONFIG_USB_NET_ZAURUS is not set
CONFIG_BRCMFMAC=y
CONFIG_BRCMFMAC=m
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_KEYBOARD is not set

View File

@ -18,12 +18,22 @@ defmodule NervesSystemRpi3.Mixfile do
def application, do: []
defp deps do
[{:nerves, "~> 0.4.0"},
{:nerves_toolchain_arm_unknown_linux_gnueabihf, "~> 0.9.0"}]
++ [find_nerves_system_br()]
[find_nerves(), find_nerves_toolchain(), find_nerves_system_br()]
end
def find_nerves_system_br do
defp find_nerves_toolchain() do
{:nerves_toolchain_arm_unknown_linux_gnueabihf, "~> 0.9.0"}
end
defp find_nerves() do
if File.exists?("../nerves") do
{:nerves, in_umbrella: true, override: true}
else
{:nerves, "~> 0.4.0"}
end
end
defp find_nerves_system_br do
if File.exists?("../nerves_system_br") do
{:nerves_system_br, in_umbrella: true}
else

View File

@ -1,40 +0,0 @@
# bcm94330wlsdgb.txt
manfid=0x2d0
prodid=0x0552
vendid=0x14e4
devid=0x4360
boardtype=0x0552
boardrev=0x11
# this design has 2.4GHz SP3T switch
boardflags=0x00080200
nocrc=1
xtalfreq=37400
boardnum=22
macaddr=00:90:4c:c5:12:38
ag0=255
aa2g=1
ccode=CN
pa0b0=0x14d0
pa0b1=0xfd98
pa0b2=0xff78
rssismf2g=0xa
rssismc2g=0x3
rssisav2g=0x7
maxp2ga0=0x50
sromrev=3
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
cckPwrOffset=5
ofdm2gpo=0x66666666
mcs2gpo0=0x6666
mcs2gpo1=0x6666
swctrlmap_2g=0x04040404,0x02020202,0x02020404,0x10202,0x1ff
swctrlmap_5g=0x00100010,0x00280020,0x00200010,0x14202,0x2f8
rfreg033=0x19
rfreg033_cck=0x1f
dacrate2g=160
txalpfbyp2g=1
bphyscale=17
cckPwrIdxCorr=-15
pacalidx2g=45
txgaintbl=1

View File

@ -0,0 +1,66 @@
# NVRAM file for BCM943430WLPTH
# 2.4 GHz, 20 MHz BW mode
# The following parameter values are just placeholders, need to be updated.
manfid=0x2d0
prodid=0x0727
vendid=0x14e4
devid=0x43e2
boardtype=0x0727
boardrev=0x1101
boardnum=22
macaddr=00:90:4c:c5:12:38
sromrev=11
boardflags=0x00404201
boardflags3=0x08000000
xtalfreq=37400
nocrc=1
ag0=255
aa2g=1
ccode=ALL
pa0itssit=0x20
extpagain2g=0
#PA parameters for 2.4GHz, measured at CHIP OUTPUT
pa2ga0=-168,7161,-820
AvVmid_c0=0x0,0xc8
cckpwroffset0=5
# PPR params
maxp2ga0=84
txpwrbckof=6
cckbw202gpo=0
legofdmbw202gpo=0x66111111
mcsbw202gpo=0x77711111
propbw202gpo=0xdd
# OFDM IIR :
ofdmdigfilttype=18
ofdmdigfilttypebe=18
# PAPD mode:
papdmode=1
papdvalidtest=1
pacalidx2g=42
papdepsoffset=-22
papdendidx=58
# LTECX flags
ltecxmux=0
ltecxpadnum=0x0102
ltecxfnsel=0x44
ltecxgcigpio=0x01
il0macaddr=00:90:4c:c5:12:38
wl0id=0x431b
deadman_to=0xffffffff
# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
muxenab=0x1
# CLDO PWM voltage settings - 0x4 - 1.1 volt
#cldo_pwm=0x4
#VCO freq 326.4MHz
spurconfig=0x3
edonthd20l=-75
edoffthd20ul=-80

View File

@ -29,7 +29,7 @@
"mime": {:hex, :mime, "1.0.1", "05c393850524767d13a53627df71beeebb016205eb43bfbd92d14d24ec7a1b51", [:mix], []},
"mimerl": {:hex, :mimerl, "1.0.2", "993f9b0e084083405ed8252b99460c4f0563e41729ab42d9074fd5e52439be88", [:rebar3], []},
"mustache": {:hex, :mustache, "0.0.2", "870fbef411c47d17df06a57b8b3f69e26eb110cba0177c34e273db5d94369d9b", [:mix], []},
"nerves": {:hex, :nerves, "0.4.6", "2026851cfbf67fd797e6a9f304498bb2d04f39f2d17d6e77ed82fab361178eae", [:mix], [{:distillery, "~> 1.0", [hex: :distillery, optional: false]}]},
"nerves": {:hex, :nerves, "0.4.7", "c8d08348e6f717cf140da26dc374bcf2f6f7c2bec646073aeab049e08b588173", [:mix], [{:distillery, "~> 1.0", [hex: :distillery, optional: false]}]},
"nerves_firmware": {:git, "https://github.com/nerves-project/nerves_firmware.git", "b783df3867c82dc0abe6770079077a6f922c00a9", []},
"nerves_firmware_http": {:git, "https://github.com/nerves-project/nerves_firmware_http.git", "cc2cb110b0587a482d454175916dc597d62c4bfa", []},
"nerves_interim_wifi": {:git, "https://github.com/nerves-project/nerves_interim_wifi.git", "32e848274571e328ebd7155848cc28d020938429", []},