Forum Replies Created
-
AuthorPosts
-
ChristopheParticipant
Maybe the very first points should be:
1) start thinking of a device name now!
2) try to remember you wifi password, because you will need it at some point!I always need at least 1 hour notice when I need to decide on a new gadget host name, and I NEVER remember my wifi password since I only need it once or twice a year 🙂
November 29, 2016 at 7:38 pm in reply to: Error "Device not found. Please make sure it's online". Device already claimed?? #3351ChristopheParticipantIt seems like it is a UX issue, more than a technical issue: I was able to update the firmware by selecting the ‘turkey_mighty’ name in the dropdown, so the device was obviously mine, but not with the expected name.
The doc says to claim your new device, but:
1) it was already claimed
2) with a random name different than the one I put in the Particle iOS app
3) the existence of that device is hidden inside a SELECT dropdown that you need to click to open
and 4) the error message displayed is not the correct one: it says “device not found”, while the real error is that it is already claimed.Maybe the doc should say to first check if the device is not already claimed, and only if it is not, to use the Device ID to claim it. Also a note that “device name changes may take some time to update” would help (obviously if this is my first Photon device, and I see an entry with the same Device ID, IP address and Last Checked time a few seconds again, I will understand that this is the device I’m looking for)
Maybe displaying a visible list of already claimed devices at the top of the screen with the buttoms to claim a new one (showing device name, device id and IP address?) could help solve this issue.
PS: I may keep the name ‘turkey_mighty’ because it is just awesome 🙂
ChristopheParticipantI have a slightly different issue: flashing seem to have worked ok, but I get the screen “SD” with two red lines, even though I have copied the ‘wifi’ folder inside 00system on the SD card.
When I power off / power on, I get 3 to 5 random leds on the GF main display, then after a few seconds the yellow “SD” + 2 red lines appear. After about a minute, I see a reboot (blank screen), then “SD” error screen again.
I checked multiple times the SD card, and everything looks alright. I have the 00system folder with the previous stuff, and the new wifi subfolder with wifi.ini a bunch of bmps and html and subfolders (email, follower, iss, twitter, …)
The /00system/wifi/wifi.ini file has wifi=true, and inifile=false.
Behind the device, on the photon board, I see a blue led (right next to D7) and a white pulsating LED between the RST/SETUP buttons. On the GF board itself, I see the red POWER led on, and the green STATUS led is pulsating fast.
ChristopheParticipantYup, fixed the issue in remote test screen. I’m not seeing the wrong icon, only sometimes button is ignored. Tried recording mode multiple times, and it works fine as well.
We still don’t know what was causing the issue in the first place, maybe some interference between LED display and IR remote when display is being updated?
Not sure how the wiring is done, but the fact that the crash test screen is almost not impacted at all (no display updates), while others screen are (lots of quick display updates), tends to incriminate the LED drivers … ?
ChristopheParticipantUpdated the firmware, and we are almost there:
– remote test screen: it reacts to keypress, but sometimes, it shows the previous button instead: example, I press the sequence POWER-MENU-MENU-MENU, and it will display “POWER-POWER-MENU-MENU”.
– remote record screen: it worked, but I had to press MENU two times for it to be recognized. the remote.ini contains the correct codes.
– clock: was able to set the time no problem, which i think was the most visible issue “out of the box”
– normal use: as with previous update, did not notice anything obvious, appart from the occasional missed keypress here and there.
– breakout: I still lost because the ball physics are a bit … random 🙂Overall, this firmware is really an improvement on the stock one, for board that would have an issue with IR sensors. great work 🙂
ChristopheParticipantI needed a different command because no IR code received is also ‘Z’, and I needed to know if I needed to read an IR code immediately (bad code usually followed by correct code) or not (no button pressed).
Your updated firmware seems to completely fix the issue in remoteTest() and in general use of the menus, but setting the clock is still almost impossible (pressing menu is only recognized 1 out of 3 times maybe, and it does not recognize when I release the button well), and recordIRCodes() still has the same issue (though this time, it asked me for the MENU code, but then the NEXT code flashed without asking me anything), and remote.ini looks like this after (not even one valid code was read) :
[remote]
# Learned Codes
power = 715979422
menu = 32895
next = 1699874231
1455As far as I’m concerned the remaining issues are not that big a deal (can set time using physical buttons, and if I ever need to change remote, I can use the crash test screen to read the code, and edit the remote.ini file by hand).
What did you change in this firmware?
ChristopheParticipantAfter performing a “breakoutectomy”, I was able to slim the code and allow it to build. With that, I could play with the gameframe a bit more 🙂
I now think I get a good sense of what’s going on, and the issue can be worked around in almost all the cases…. but it does not look like it is worth it for normal use (code would become bloated with checks that would take more space in the flash only to fix visual glitches in remote test mode, and the record mode is not really important for me … as long as I don’t lose the remote)
The issue is indeed caused by phantom codes being read by irrecv.decode(..). I changed the irReceiver() code to have a new value of ‘X’ for irCommand when the code is not recognized, which filters bad codes out.
The glitchiness in the remoteTest() code is due to the way you deal with ‘timeout’ of key presses, by simply waiting more than the typical delay between IR codes: but when you read an invalid code, you wait again 150ms before reading the next (which is the correct code still in the irrecv buffer somewhere). If the IR buffer is filled with random junk, you will need multiple reads to clear it, and at 150ms per read, this can take up to a few seconds of blinking when there is a lot of stuff there.
I tried changing the code logic with a timeout counter, and a delay of 10ms between reads, and it works almost in all cases… but it does not seem like its worth complicating the code for this.
I have *NO* idea, after reading and testing the code, why the crash test screen does not show these phantom codes (unless in rare cases where I have to spam key remote keys…), probably due to the timing?
Stupid idea: most of the code that produces random codes is almost always before/after refreshing the entire LED screen (which will flash), while the crash test screen does nothing to the screen (only writes to serial port).
Maayyyybe the LCD driver is interfering with the IR receiver somehow? (either on the data bus, electrically, or maybe even the light emitted by the LED would impact the receiver
ChristopheParticipantWas able to finally install Arduino IDE and start playing with the code comfortably on my mac at home. So this is a different place, which would rule out any outside IR perturbation from other devices at work.
btw: I’m having some issues when building for Teensy LC (will probably open a new post for that) with
gameFrameV2.ino.elf section '.text' will not fit in region'FLASH'
andregion 'FLASH' overflowed by 3036 bytes
. Had some difficulty finding the correct versions of some lib (SdFat) which have changed recently, and also Teensyduino needs to be in 1.31-beta to be compatible with Arduino 1.6.12 (which I downloaded).Anyway, with the Arduino serial monitor, I see the following happening when using the stock remote with stock remote.ini on GameFrame with stock firmware (logs below)
You can see that there is always a rogue IR code received before the correct one.
This would explain why the IR record screen has issues: it probably reads these codes and think that they are the code the for first POWER button. Also would maybe explain the “blinking” of icons: usually the sequence is “bad code, REPEAT, good code”. Your code in irReceiver() may not understand whats going on, and think that it was a repeat of the last key pressed on the remote, and return command ‘R’ to the caller code, instead of the intended code (‘M’ in this case). But if I press the button long enough on the remote (> 150ms?) then maybe it will have a chance to see the proper code. This would explain the symptom of having to press hard/longer on buttons just so that it last more than 150 or 300ms??
# from the clock screen, I press menu a few timesLoading image ‘/00system/digits.bmp’
IR code received: 1032981240 <— 3D920AF8 ?
IR code received: 2155864095 <— MENU BUTTON correct code for menu
Interpreted as: M# switching to the menu screen
Loading image ‘/00system/bright_1.bmp’
IR code received: 3887053538 <—- E7AFBAE2 (this one is seen frequently)
IR code received: 4294967295 <—- FFFFFFFF
Interpreted as: R
IR code received: 2155864095 <— pressed MENU again
Interpreted as: MLoading image ‘/00system/play_1.bmp’
IR code received: 3887053538 <— E7AFBAE2 this code again
IR code received: 4294967295 <— FFFFFFFF
Interpreted as: R
IR code received: 2155864095 <— MENU BUTTON
Interpreted as: MLoading image ‘/00system/time_3.bmp’
IR code received: 196227623 <— 0BB23227 another weird code
IR code received: 4294967295
Interpreted as: R
IR code received: 2155864095 <— MENU BUTTON
Interpreted as: MLoading image ‘/00system/mode_1.bmp’
IR code received: 3887053538 <– E7AFBAE2 gain
IR code received: 4294967295
Interpreted as: R
IR code received: 2155864095 <— MENU BUTTON
Interpreted as: MLoading image ‘/00system/game.bmp’
IR code received: 3887053538 <— E7AFBAE2 again
IR code received: 2155864095 <— MENU BUTTON
Interpreted as: MLoading image ‘/00system/bright_1.bmp’
IR code received: 2823767411 <— A84F4573
IR code received: 4294967295 <— FFFFFFFF
Interpreted as: R
IR code received: 2155864095 <— MENU BUTTON
Interpreted as: MLoading image ‘/00system/play_1.bmp’
IR code received: 3887053538 <— E7AFBAE2 again
IR code received: 4294967295 <— FFFFFFFF
Interpreted as: R
IR code received: 32895 <— 807F truncated prefix of valid code
IR code received: 4294967295 <— FFFFFFFF
Interpreted as: R
IR code received: 2155864095 <— MENU BUTTON
Interpreted as: MLoading image ‘/00system/time_3.bmp’
IR code received: 3887053538 <— E7AFBAE2
IR code received: 2400927396 <— 8F1B3EA4 ??
IR code received: 4294967295 <— FFFFFFFF
Interpreted as: R# then the regular clock resumes
ChristopheParticipantIn normal use it’s very minimal and not that bothersome (except I now have a ready made excuse when I lose at arkanoid 🙂 ). I’ll try later this night playing with it again, see if I can reproduce in the crash test mode.
This week end, I will install the arduino IDE, see if I can build the firmware myself, and maybe try playing with the code, see if I can get more details on what exactly is happening.
Thanks for the help 🙂
ChristopheParticipantEdit: I found out why putty was not working, it was problem between keyboard and chair, orz
So: with stock config remote is ~ok (except the glitchiness with short keypress especially in clock setting mode).
But once I go to test mode or record mode, things go south. Also, since the record mode captures garbage, behavior afterwards is random (all the blinkiness above) probably because of that.
ALSO, I’ve seen in remote.ini again the same thing with an extra line after ‘next = ….’ with an extra number.
I THINK this bug is because here you overwrite the file with the new codes: https://github.com/Jerware/GameFrameV2/blob/master/gameFrameV2.ino#L523 and then close the file, without truncating it. But maybe if one of the codes is shorter than before, the tail of the previous number will be left.
let’s say before you had:
next = 1234567890[CR][LF]
… rest of the filebut now you write the new values.
next = 1234[CR][LF]and close file, the file now contains
next = 1234[CR][LF]7890[CR][LF]
… rest of the fileWhich looks like there is an extra “7890” on a new line but it is the remainder of previous version of file.
You would need to truncate the file (but loos the comments at the end of remote.ini, OR maybe write an extra ‘#’ at the end that would make the extra numbers look like a comment (hacky but may be good enough)
ChristopheParticipantI usually use Putty, but when I go to Connection > Serial, COM3+57600, when I clic on “Open”, nothing happens 🙁
Anyway, here is the tests with gameframe remote
POWER button for 3 sec
IR code: 2155819215
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295MENU button for 3 sec:
IR code: 2155864095
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295Next button for 3 sec:
IR code: 2155831455
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295
IR code: 4294967295This mode looks fine, nothing like the test or record mode 🙂
ChristopheParticipantOk here is a test scenario I just did on the IR test mode, looking at a TV remote that I found. I’l try doing the same thing with the original remote, to see the difference, but visual behavior is the same.
=> my current thinking is that remote is perfectly OK. Pb seems to be that IR driver is not flushing the buffer of ir codes received properly or something, and that your code is reading extra stuff mixed in with the actual codes sent by the remote. Combined with your logic in the test and record screen produce this odd behavior.
Note sure if the behavior comes from incorrect configuration of the IR driver somewhere, or maybe a faulty IR sensor that behaves in a way not expected by the IR driver?
—-
### On the IR test screen, with TV remote
# I press the ‘next’ button on the back
> Loading image ‘irPowr.bmp’
> IR code: 3887053538
> Loading image ‘irMenu.bmp’# I see the menu icon, I wait 30 sec… then press ‘1’ button on TV remote
> IR code: 3778927144
> Loading image ‘irNext.bmp’# I see the next icon, I wait 30 sec again… then press ‘2’ button on TV rmeote
> IR code: 2908251746
> Loading image ‘irZapr.bmp’# back on test screen, I wait 30 sec, nothing happens
# then I press the ‘1’ TV remote (which was recorded for the ‘menu’ button) and chaos happens
# => random blinkings of the various icons for about 5 seconds, and the following log
# I did NOT do anything with the remote except pressing ‘1’ briefly. I also tried putting away the remote, the sequence continues.#(note: unfortunately, my serial console on my PC truncated the top of the log, but this is similary to the start of the next test below)
> IR code received: 2823767411
> Loading image ‘irZapr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 1322193144
> Loading image ‘irZapr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 2823767411
> Loading image ‘irZapr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 196227623
> Loading image ‘irZapr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 1574859868
> Loading image ‘irZapr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 2823767411
> Loading image ‘irZapr.bmp’
> IR code received: 1574859868# aaaand…. stop!
# I wait a bit, press the same ‘1’ button again, and this only last a few blinks…
> IR code received: 3778927144
> Interpreted as: M
> Loading image ‘irMenu.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053539
> Loading image ‘irZapr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 3887053538
> Interpreted as: P
> Loading image ‘irPowr.bmp’
> IR code received: 2179001249
> Loading image ‘irZapr.bmp’
> IR code received: 196227623# wait a bit, press ‘1’ again… and this time only a single blink of the menu icon (correct!)
> IR code received: 3778927144
> Interpreted as: M
> Loading image ‘irMenu.bmp’
> IR code received: 1471620857
> Loading image ‘irZapr.bmp’
> IR code received: 3887053539ChristopheParticipant1) Found a TV remote that works, and behavior is the same as with the original remote (but with different values for codes). I’m trying to record the logs over serial from the record and test screen which show interesting results.
2) under normal conditions, the gameframe responds fine to most keypress, and I can’t use the menu. The only thing “visible” is that sometimes it looks like I pressed multiple time the same button, other times, as if I did not press the button. The small arkanoid clone is mostly playble. The only huge hurdle is setting the clock because it stops but does not start when you want etc, and when retrying it always stops one before or one after the desired hour/minute. Except from this, the other major features are usable.
That’s why maybe the initial impression for new owners of the frame is similar to an old crummy remote with buttons that start failing (bad contacts, dust …)
3) I see the IR sensor allright, see attached picture.
I’l try recording a small video if I can to show the behavior…
Attachments:
You must be logged in to view attached files.ChristopheParticipant(damn autocorrect) for remoteTest(): blinking 2-3-4 times about 2 or 3 *hertz*
ChristopheParticipant(On mobile right now) Sorry, force of habit, not sleep() but delay() of course.
– remoteTest() waits 125 before calling irReceiver()
– recordIRCode() does not call delay()
– sdErrorMessage() seems to wait 1With remoteTest I see icon blinking at 2 or 3 ha which is about 125ms x 2
With recordIRCode it does not wait… but maybe it waits 2 ms?
With sdErrorMessage I only see other codes when I quickly spam a button, less if I press buttons for a long timeI don’t have any activity when I don’t press a button on the remote is all 3 cases
Tried some random remote but it did not react, will need to find another remote to test
-
AuthorPosts