Page 1 of 1
Can't pair to BT module after firmware update
Posted: Thu Jul 14, 2016 8:13 pm
by rphelan
Hi All,
I just updated my RCP to the latest firmware. When I went to update it, I went ahead and unplugged the bluetooth module to be safe.
Now, after the update I plugged the BT module back in and tried to pair. No go. Tried my phone, my tablet, my PC, each one gave a response of "Bad Pin". I'm using the same pin as I had before (I think 1234) and it's still failing to connect. I've tried the BT module in either RJ11 jack, and it makes no difference.
I've re-flashed the device with the firmware package I downloaded and it seemed to go through the process, but no change on the BT situation. I'm considering flashing it down to an earlier version, testing, and then flashing back up again.
Anyone have any thoughts?
Thanks,
Rob
Posted: Fri Jul 15, 2016 10:33 pm
by brentp
Hi Rob,
What version did you upgrade to before you saw the problem? 2.9.2 or the beta 2.10.0 we announced on the beta list?
Also, try shutting down / restarting the phone or tablet; sometimes the bluetooth service in the android device gets into a bad state that a re-start helps fix.
Also, when it's plugged in, you're otherwise seeing the green flashing light on the bluetooth module?
Posted: Wed Jul 20, 2016 4:32 am
by loftygoals
To follow up on this for, Rob, it associating again.
It was on the public release 2.9.2. Changing the name and the PIN seemed to fix the problem.
BTW, Rob did a slick canbus integration with the MS2/Extra (MSPNP2) that is controlling his BMW M20. He'll be doing a short video showing the wiring and the configuration in the future.
-bj
Posted: Wed Jul 20, 2016 4:33 am
by brentp
Fantastic. Thanks for the update. And we'd love to see the video -the megasquirt integration is great with RCP!
Note, we recently updated the Megasquirt script to account for some TPS weirdnesses we've seen in the data.
Posted: Sat Jul 23, 2016 11:54 pm
by toga94m
The megasquirt script as-is is too large to run on MK1 hardware (on 2.8.7 firmware). I pared it down a bit and got it to run without complaining about memory limits, but because the racecar is at another guy's house, it'll be tomorrow before I know if it actually pulls data from our Megasquirt CAN broadcast. 3rd autocross (in our 6-event season) is tomorrow. If it works, I'll share the slimmer script here. I also added the auto-log-if-battery-over-13V function into ontick(), and that part works in my daily driver.
Posted: Mon Jul 25, 2016 1:36 am
by toga94m
I had to trim out the filter section, and replace some constants with their numeric equivalents to make the Megasquirt script fit on a MK1. It worked fine in-car, before starting the car. Once battery voltage got high enough to start logging, the script silently crashed. So I commented out the section I added (log if battery > 13) and manually started logs... and was able to log CANbus data from megasquirt.
Any tips about properly adding the startLogging() back in? I seem to suffer brainfarts when I'm at the start line for the next autocross run... not remembering to push the logging button.
Also - the 1.6.0 app on the Kindle can't edit the script - the screen tries to split between script, console, and onscreen keyboard, but the script goes off the top so there's no way to edit. Otherwise, the Kindle is a great upgrade to my old tablet - it connects quickly over bluetooth.
Code: Select all
--1 for Big Endian (MSB) mode; 0 for Little Endian mode (LSB)
be_mode = 1
--add your virtual channels here
--addChannel(<name>, <sample rate>, [logging precision], [min], [max], [units label])
rpmId = addChannel("RPM", 10, 0, 0, 8000)
tpsId = addChannel("TPS", 10, 0, 0, 100, "%")
mapId = addChannel("MAP", 10, 0, 0, 105, "kPa")
cltId = addChannel("Coolant", 1, 0, 0, 250, "F")
--customize here for CAN channel mapping
--format is: [CAN Id] = function(data) map_chan(<channel id>, data, <CAN offset>, <CAN length>, <multiplier>, <adder>)
CAN_map = {
[1512] = function(data) map_chan(mapId, data, 0, 2, 0.1, 0) map_chan(rpmId, data, 2, 2, 1, 0) map_chan(cltId, data, 4, 2, 0.1, 0) map_chan(tpsId, data, 6, 2, 0.1, 0) end
}
function onTick()
processCAN(CAN_chan)
-- if getAnalog(7) > 13 then
-- startLogging()
-- else
-- stopLogging()
--end removed
end
--===========do not edit below===========
function processCAN(chan)
repeat
local id, e, data = rxCAN(chan)
if id ~= nil then
local map = CAN_map[id]
if map ~= nil then
map(data)
end
end
until id == nil
end
--Map CAN channel, big endian format
function map_chan(cid, data, offset, len, mult, add, filter)
offset = offset + 1
local value = 0
while len > 0 do
value = (value * 256) + data[offset]
offset = offset + 1
len = len - 1
end
local cv = value * mult + add
setChannel(cid, cv)
end
initCAN(0,500000)
setTickRate(30)