Jump to content

JavaLaurence

Members
  • Gesamte Inhalte

    216
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von JavaLaurence

  1. "Mod" is just using custom character bitmaps. If the LCD allowed more than 8 custom chars, one could do much fancier stuff.
  2. By "aggressively polling" I mean I'm polling all the bricklets in my stack every second, and updating the LCD to reflect the new values. I know 1Hz is peanuts, but I don;t know how you guys implemented your onboard software, so... I've just written a much more sophisticated exception logging mechanism which will help me analyse the TimeoutException sources more easily. So far, it looks as if the Distance IR bricklet is the source of 98% of the exceptions.. and that just doesn;t make sense. What's so special about it? Maybe we're on to something
  3. Currently, the TF implementation lets us instantiate a Bricklet object for a Bricklet which physically doesn't exist, either by passing a wrong UID, or by passing the "right" UID, but not having the Bricklet physically connected. In either case, would it not be preferable to fail-early by having the constructor blow up with throw new IllegalArgumentException("Bricklet not present: " + uid); ? This suggestion does not require an API change, only an implementation change (and updated docs).
  4. You'll probably agree that I didn't aim to win any aesthetic contests.. but functionally, it works For the curious, I used one Ethernet cable.. and halfway realised I actually needed 10 cores, not 8, so I butchered another length of Ethernet cable to give me the extra 2 cores.
  5. Wouldn't it be really nice to be able to monitor things like a) the number of bytes transmitted/received over the link? b) the number of protocol packets sent/received? For the Java bindings, a) would be easy to add by wrapping the raw I/O network streams with some Filter streams. The reason I'd like to have the above is to get some idea of how much bandwidth/load I'm demanding from my stack..
  6. Hi, Is it possible that "fat" stacks with multiple masters and loads of bricklets driven by an aggressively *polling* program can be the cause of TimeoutExceptions? I managed to get my Wifi signal strength to -60dB, and I still get way too many timeouts: Starting Cellar Water Pump Control System @ Sun Mar 24 22:30:26 CET 2013 Running on Java 1.7.0_04 hosted by Mac OS X 10.7.5 Initializing TinkerForge stack.. Aha. Connected @ 21:30:26 because: CONNECT_REASON_REQUEST Done. [1] Ouch.. exception @ Sun Mar 24 22:30:46 CET 2013 [2] Ouch.. exception @ Sun Mar 24 22:31:10 CET 2013 [3] Ouch.. exception @ Sun Mar 24 22:31:39 CET 2013 [4] Ouch.. exception @ Sun Mar 24 22:32:08 CET 2013 [5] Ouch.. exception @ Sun Mar 24 22:32:21 CET 2013 [6] Ouch.. exception @ Sun Mar 24 22:32:40 CET 2013 [7] Ouch.. exception @ Sun Mar 24 22:33:37 CET 2013 [8] Ouch.. exception @ Sun Mar 24 22:33:43 CET 2013 [9] Ouch.. exception @ Sun Mar 24 22:34:29 CET 2013 [10] Ouch.. exception @ Sun Mar 24 22:34:46 CET 2013 [11] Ouch.. exception @ Sun Mar 24 22:36:03 CET 2013 [12] Ouch.. exception @ Sun Mar 24 22:36:21 CET 2013 [13] Ouch.. exception @ Sun Mar 24 22:36:29 CET 2013 [14] Ouch.. exception @ Sun Mar 24 22:36:41 CET 2013 [15] Ouch.. exception @ Sun Mar 24 22:36:45 CET 2013 [16] Ouch.. exception @ Sun Mar 24 22:36:57 CET 2013 [17] Ouch.. exception @ Sun Mar 24 22:37:02 CET 2013 [18] Ouch.. exception @ Sun Mar 24 22:37:13 CET 2013 [19] Ouch.. exception @ Sun Mar 24 22:37:50 CET 2013 [20] Ouch.. exception @ Sun Mar 24 22:38:11 CET 2013 Switching pump ON @ Sun Mar 24 22:38:43 CET 2013. Time since last: 22:38:43,959. Air: 1012.27,Temp: 12.81,Humid: 62.3,Light: 0.0,Heap: 2.93 MB, [21] Ouch.. exception @ Sun Mar 24 22:39:14 CET 2013 [22] Ouch.. exception @ Sun Mar 24 22:39:21 CET 2013 [23] Ouch.. exception @ Sun Mar 24 22:39:45 CET 2013 [24] Ouch.. exception @ Sun Mar 24 22:39:48 CET 2013 [25] Ouch.. exception @ Sun Mar 24 22:39:53 CET 2013 [26] Ouch.. exception @ Sun Mar 24 22:40:14 CET 2013 [27] Ouch.. exception @ Sun Mar 24 22:40:49 CET 2013 [28] Ouch.. exception @ Sun Mar 24 22:40:59 CET 2013 [29] Ouch.. exception @ Sun Mar 24 22:41:26 CET 2013 [30] Ouch.. exception @ Sun Mar 24 22:41:30 CET 2013 [31] Ouch.. exception @ Sun Mar 24 22:41:32 CET 2013 [32] Ouch.. exception @ Sun Mar 24 22:41:47 CET 2013 [33] Ouch.. exception @ Sun Mar 24 22:41:51 CET 2013 The main new thing which I changed was hook up my LCD20x4.. and I'm updating the whole screen at 1Hz.. am I overloading the Master Brick with all the polling and LCD stuff?
  7. Hi guys, As you can see from the attached screenshot, I'm getting -78dB. This is for a setup where the AP is literally 1.5 meters away from the module. Both are separated by some (thick-ish) brick walls & ceiling. Does anyone have a signal strength that is worse than mine? Do you then suffer lots of TimeoutExceptions? Thx!
  8. Hi, I thought I had my Wifi/TimoutExceptions problems sorted, but now things have deteriorated significantly. First of, I'd like to know what the behavior of the Wifi extension SHOULD be when the stack power is turned off, then on again. Should the Wifi re-associate with the AP or not? Coz if it should, mine definitely is not anymore. Since my last post I finally managed to extend a TF cable to a length of 4.5m, allowing me to attach my LCD20x4 to the end of it (stack lives in cellar, LCD in kitchen). So now my stack consists of 2x Master, 1x Step Down, 1x Wifi, 1x LCD, 1x Dual Relay plus a bunch of asorted sensor bricklets. The new cable seemed to work flawlessly.. the display never once behaved differently from what my emulated LCD has been showing for weeks. From that I deduce that all LCD bricklet connector lines are working perfectly. But the "with LCD" stack showed significant number of TimoutExceptions, whereas the "without LCD" stack could run for 24+ hours without a single TimeoutException. It's logical to assume that the addition of the long cable + LCD is disrupting the stability of the stack, but I had hoped that this new configuration would not cause any new problems... do you know of anyone with a similar stack configuration?
  9. Follow-up post: I have now made such a cable, and it appears to work perfectly, at least from an electrical perspective. Total length: 4.5m.
  10. Mine behaves exactly the same way. A little bit surprising, I must admit.
  11. Does the architecture use I2C High Speed mode? And what's the used bus clock speed? That should give people worrying about performance an idea of what a stack is capable of.. when On Device Programming becomes available. BTW, What's the CPU clock speed of Masters? I don't think I've seen this mentioned anywhere in the docs.. just curious.
  12. It would be more elegant/future-proof/flexible to remove most extension-related APIs from the BrickMaster, and move these to separate Extension APIs. In Java, you could have the following in BrickMaster List<Extension> getExtensions(); And you could have new classes like public class WifiExtension implements Extension {..} public class RS485Extension implements Extension {..} This refactoring would clean up the BrickMaster API to reflect more of its essence.
  13. I just did another desperate Google Translate of some of the German thread on above.. and it looks like you wanna go for a Linux Super Master idea. Has anyone floated the idea to create a Raspberry Pi adaptor instead? Advantages: super cheap "Super Master" (the Pi), very standard.. all you would need is some physical adaptor that you can sell, and some custom library to "open up" the whole stack to the Raspberry code.. Just an idea.. I just feel that creating a custom 4x4 TF-clickable Linux board is reinventing the wheel a lot. It would make more commercial sense to leverage the huge following of the Pi... My 0.02c
  14. A robot using chopsticks as important parts.. superb !
  15. I didn't explain myself well enough, because you misinterpreted what i wrote. I'm assuming that the On Device API will give full access to all TinkerForge-specific features, such as the I2C bus, the ADCs of the Master Bricks etc.. but what I would love to see in addition to this, is full TCP/IP communications capabilities with the outside world (via Wifi Extension). That's got nothing to do with electronics.. it's just building in maximum (software) flexibility. BTW, I bought a soldering gun, some solder, a book on electronics, and as soon as my resistors arrive, I'll be working on hooking up my CNY70 optosensors to my Digital IO-16
  16. Assuming Qt can place images in the tabs, you could do it that way..
  17. TF's "making it easier" approach definitely hooked me. I had been looking at Arduino/Raspberry developments for ages, but because of my lack of electronics experience, I hesitated. Then I discovered your products.. ;-) For the On Device way forward, a word of caution: if you invent a brand new programming model, you may end up the Cybiko way: great, ahead-of-its-time technology, but a commercial disaster (if you don't know what Cybiko is, cfr Wikipedia). For custom approaches, there are a million possibilities (ever heard of the Rebol language?), but sadly enough, you need to ensure that your choice is commercially sound. Whatever the chosen path, it needs to attract more people to TinkerForge, not scare them away. I think that any custom or exotic language will scare people away. Also anything which only gives people a minimalistic library of executable code On Device, will not be very impressive. At the very least, ensure that there's lots of stuff to communicate to the outside world, not just to all the Tinkerforge "dimensions" (such as the I2C bus, the ADCs, the bricklet hardware). HTH
  18. It could retry, no? And after N retries print a message where the UI ought to be saying "Cannot determine presence of Wifi Extension".
  19. Given that my first choice of on-chip language is probably out of the question (Java.. not J2ME, but full J2SE), I don't really care which language is used. What I do care about is that a) the existing bindings are not thrown away b) one could transfer scripts/programs (call them what you want) to a stack VIA new APIs... so in my case, I would want to be able to send a program for on-device execution via the Java bindings. c) the On Device API includes full TCP/IP capabilities so that resident programs can communicate back to controlling PC/Raspberry/whatever. d) if Python is NOT chosen, then maybe it would be commercially valuable to try and copy as much Arduino stuff as possible (language, API). For TF to be able to use "Arduino-like" in their marketing effort would give them a commercial boost from the "other" guys. Finally, I really think it's a shame this discussion is not held in English. It's about time TF realises that it needs to focus on the international community a lot more than on its German users... I've tried using Google Translate to try and follow some German threads, and it's a pretty hopeless exercise. I don't know of any other technology supplier/site which is so not-English.. it's a shame.
  20. Hi electronics dudes! I wonder if you can help out a software dude who knows (too) little about your subject. I bought the Analog In bricklet and some Vishay CNY70 "Reflective Optical Sensor with Transistor Output" sensors with the goal of tracking some utility meters. I'd like to "hook up" the CNY70 to the Analog In by sending the +5V and GND to the emitter's two pins, and +5 to the detector side, and reading the detector's output via the Analog In. I can hardly read electronics schematics, but judging by lots of example circuits (like the one attached), you electronics guys like to hang a 10k resistor between the transistor and GND. I don't have an electronics lab, so I don't have a resistor nor a soldering gun , so my question is: what would happen if I "forget" this resistor? I'm hoping to obtain a configuration whereby the Analog In values "live" just enough for me to track a gas/electricity meter's unit digits moving past the sensor.
  21. I am just trying to follow a) the TinkerForge documentation, and b) any further advice given by the TF guys. So far nobody has mentioned the extra complexities you just did. But reading what you write, I think that there's extra DNS config work to be done. I think it's a shame the TF docs are a bit on the sparse side, and clearly do not explain enough to get certain things to work "off the shelf". I'm used to Sun's javadocs, which are typically more generous on explanation and detail. But I love the TF concept, so.. the docs won't stop me tinkering
  22. Borg: OK, Master upgraded to 2.0.5, setWifiHostname() via Brickv. AP clearly honoring this (see screenshot), but if I try to substitute this non-numeric host address in my program, then I get a java.net.UnknownHostException. Also, if I try to ping the name of my stack from the OS command line, then my Mac also does not recognize the name. Am I missing something ?
  23. OK, I see the problem. Maybe, just maybe, you could have a really tricky way to avoid needing exactly the same free buffer space as your firmware uses. Let's say you have 512K physical, and your firmware is already 300K. Maybe it would be possible to download compacted patches that fit in the remaining buffer area. Then all you would need to do is have one tiny "patch loader" program (out of harm's way) which patches the existing firmware, and restart. Assuming your firmware doesn't grow to 90% of your available space, and assuming your patches stay small.. this could work, no?
  24. For stacks containing one or more duplicate components (several Masters, several identical Bricklets..), it would be nice if the tabs displayed two lines of information: on the top line the current label, and on a bottom line the UID & maybe FW version or Position, plus number of timeouts *if* different from zero. In Java's Swing UI framework tabbed panes can have multi-line tab labels.. don't know what TF uses for brickv?
×
×
  • Neu erstellen...