Shop OBEX P1 Docs P2 Docs Learn Events
Propforth v5.5 is available for download - Page 15 — Parallax Forums

Propforth v5.5 is available for download

1121315171826

Comments

  • caskazcaskaz Posts: 957
    edited 2014-02-26 07:31
    Updated USB_Current_Monitor.
  • caskazcaskaz Posts: 957
    edited 2014-02-27 06:48
    Updated USB_Current_Monitor_20140227.pdf.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-03-02 14:06
    Today's Call:

    BMP085
    DIR505 router
    Documentation

    I'm starting on notes for the BMP085 temperature and pressure sensor. The driver code is already included in the extensions directory. It uses the same pins and communication as the EEPROM already on all prop boards, it has a different slave address. Mine is on the GY-80 10DOF IMU. In addition to the BMP085, the GY-80 has gyroscope (L3G4200D), accelerometer (ADXL345), and magnetometer (HMC5883L). These all use the same SCL SDA as the EPROM, just with unique slave addresses. So if I get one to work, the rest should work also. I'm going to start with reading and logging the data, processing the data will be a later step.

    Sal is really liking the DIR505 wireless router as an add-on linux node for prop projects. Its like Raspberry Pi with WiFi (and many wired interfaces as well), and without HDMI. Turns out that if we run a headless linux system, we can access the DIR505 over the internet, and we don't need the RPi HDMI interface; the PC interface is much better and its already set up on the desk. We might have some secure tunneling configuartion to share. The goal is to have the prop + DIR505 anywhere, and on the interenet, secure, as long as there is some weired or wireless connection availible. Sal is also looking at openSPIN to compile SPIN code on the DIR505. We might be able to remove Windows from the tool chain.

    We have decided a documentation option to try out. We will leave the PropForth 5.5 material on the Google code site intact. For the new Propforth 6 material, we will try a major re-organization. Sal is going to set up an Apache server and Docuwiki and host these. We should all be able to access and update the docs. There will be a link to PF6 site once he's ready to make it public.
  • caskazcaskaz Posts: 957
    edited 2014-03-02 15:50
    Hi prof_braino.
    Please fix i2c-words for PF6 because they sometimes don't operate correctly on PF5.5.
    For example ADT7410.
  • caskazcaskaz Posts: 957
    edited 2014-03-03 02:52
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-03-03 09:53
    caskaz wrote: »
    Hi prof_braino.
    Please fix i2c-words for PF6 because they sometimes don't operate correctly on PF5.5.
    For example ADT7410.

    Hi caskaz!

    Could you please open an issue, and include steps so we can reporduce the problem exactly as you see it?

    If Sal can't see you problem, he will have a hard time fixing it. And I don't know much about I2C just yet.
  • caskazcaskaz Posts: 957
    edited 2014-03-03 14:53
    Hi prof_braino.
    Please read my post #403 -#408.
    There are devices PF5.5's code for i2c operate correctly.
    But it is not much.
    Basic for i2c is simple.
    Hi-level for i2c-bus is by pull-up resister(prop's port is input).
    Low-level for i2c-bus is by output(low) of prop(prop's port is output).
  • caskazcaskaz Posts: 957
    edited 2014-03-03 15:24
  • caskazcaskaz Posts: 957
    edited 2014-03-06 18:43
    Updated i2c_devices.
    Only 11 devices.

    There was bug in USB_Current_Monitor_II_0.2.2.f.
    When executing 'i2c_search' from TeraTerm, sometimes lcd-screen display strange.
    : i2c_search 0 lcd_update W! i2c_detect 1 lcd_update W! ; -> : i2c_search 0 lcd_update W! d100 delms i2c_detect 1 lcd_update W! ;
  • caskazcaskaz Posts: 957
    edited 2014-03-16 07:44
    Updated i2c_devices.
    Only 14 devices.
    I uploaded only new files because 14folder's zip-file is more than 10MB.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-03-16 12:07
    We started the new dokuwiki for PropFORTH 6. It is NOT public for the time being, until we get some examples started and organized. Once we get going, contributors will be allowed access to the dokuwiki.

    The first instruction is for the D-Link DIR505L. Its pretty striaght forward.
    If you don't want to wait, the existing instructions are at http://wiki.openwrt.org/toh/d-link/dir-505

    The existing instructions are very had for a noob to get started, but once you know everything, all the information is there. My task will be to arrange the information so a noob can follow step by step, and not have to "already know everything" in order to make sense of it. Sal has most of the material for setting up the DIR505. It is easy, but there are a LOT of steps and they MUST all be done in the propber order. All the issues he has had were due to skipping a step.

    FTDI issues: turns out there is an intermittent issue with the FTDI chips. If FULL DUPLEX is used (both sides talking at the same time) th driver can hang. There are reports of this out on the web. Some machine never exibit the issue (windows PC), other machines experience it frequently (virtualbox, ubuntu, netbook). The issue never has been manifest on our rigs in half duplex (one side is quiet until the other stops talking). We plan to use other means on rigs that experience the issue, for example on the DIR505 we will connect direct to the serial port.

    I started learning about I2C. Its a lot easier than I thought. The bmp085.f source code will be my stating point.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-03-23 08:38
    Today's call

    We worked on setting up Sal's DocuWiki server for PropFORTH6 and the DIR505 cmmunications project. The server is already set up, we should be able to make the links public next week or so after we get some pages organized and populated. Sal has suggested I DON'T start working on the openWRT code just yet, there are lots of wrong path and he took most of them. For now I am working on the overly detailed instructions for the very simple hardware mod to add a connector for the DIR505 serial port.

    The next example project might be the GY-80 IMU (or similar, there might be a cheaper more capable version out now)
    The project should serve as a demo for:
    - simple serial
    - driver implementation (bmp085. ADXL345, HMC5883L, L3G4200D)
    - filtering (Kalman filter)
    - converting a spreadsheet calculation (Kalman filter) to an algorithm
    - implement the algorithm in FORTH (probably fixed point integer math)
    - optimize the algorithm in assembler
  • caskazcaskaz Posts: 957
    edited 2014-03-29 06:47
    I got NeoPixel Ring(16LEDs).
    http://www.adafruit.com/products/1463

    I translated WS2812 LED Driver inside OBEX to propforth. (Thanks Jon McPhalen)
    http://obex.parallax.com/object/703
    I modified a little jm_ws_2812.spin.
    I don't translate jm_ws_2812_demo.spin.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-03-29 07:34
    caskaz wrote: »
    I got NeoPixel Ring(16LEDs).
    .. translated WS2812 LED Driver inside OBEX to propforth.

    That way cool dude!

    I'm totally going to use this!
  • mindrobotsmindrobots Posts: 6,506
    edited 2014-03-29 07:44
    caskaz wrote: »
    I
    I translated WS2812 LED Driver inside OBEX to propforth. (Thanks Jon McPhalen)
    http://obex.parallax.com/object/703
    I modified a little jm_ws_2812.spin.
    I don't translate jm_ws_2812_demo.spin.

    Thanks, Cas! This looks like fun. have one of the equivalent strips I picked up from Radio Shack and then I have some of the individual LEDs. It will be fun to play with them in PropForth!!
  • caskazcaskaz Posts: 957
    edited 2014-03-30 05:14
  • caskazcaskaz Posts: 957
    edited 2014-03-31 23:29
    Updated i2c_utility.
    Prop0 Cog6 ok 
    i2c_detect 
         0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F 
    00: 00 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  <-- ADT7410 reply to general-call--address
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- <-- PCF8574
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --  <-- ADT7410
    50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --  <-- eepron on QuickStartboard
    60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --  <-- MPU6050
    70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    i2c_device:4 
    [0 – 7] and [h78 – h7F] are reserve-address for 12c
    
    Prop0 Cog6 ok
    
    640 x 480 - 64K
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-04-01 07:00
    caskaz wrote: »
    i2c_detect

    That is brilliant!

    Did you see GY-80? Its inertial measurement unit for quadcopter, bots, handhelds. It uses I2C, so I started learning. I have started drivers for ADXL345 accelerometer, HMC5883L Compass, and L3G42000 MEMS gyro; based off Sal's BMP085 barometer driver.

    Could you please look at the I2C page and see if it needs changes? http://code.google.com/p/propforth/wiki/I2C

    I2C is really fun!
  • caskazcaskaz Posts: 957
    edited 2014-04-04 06:53
    I wrote summary about i2c.
  • caskazcaskaz Posts: 957
    edited 2014-04-05 23:02
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-04-06 09:16
    Today's call

    More work on the PropFORTH 6 documentation web site.

    We're on track for the hardware mod for the DIR505, which will be the "cheapest example" of a linux box interface. The same linux example should apply to RPi or any PC linux box. The linux box will provide termial, long term storage, number crunching and communications services. PropFORTH 6 will used these services for the automated build and test, and for applications.

    Sal is creating more detailed explanations of technical details. For example, we had many questions about serial drivers. Sal is going to try to break this down more thoroughly so we fully understand and modify the serial drivers.

    I'm still working on the GY-80 IMU examples. I have code for drivers for the individual sensors, I'm working on bringing the indivdual drivers together in a single background cog since they all use the same I2C bus.

    Sal is making a demo for using LED as a light sensor. This is the same as the Forest M Mims books' "LED as a light sensor", with a PropFORTH driver.
  • caskazcaskaz Posts: 957
    edited 2014-04-11 21:31
    I made LED Inifinity to use WS2812B(38pcs).

    http://youtu.be/GX-Eee11efw
  • caskazcaskaz Posts: 957
    edited 2014-04-12 21:35
    Updated USB_Current_Monitor.
    Updated i2c_devices.
    Only 16 devices.

    DS3231(RTC)
    DS1337(RTC)
    DRV8830(DC Motor Driver)
    HMC5883L(Compass)
    S11059-02DT(ColorSensor)
    L3GD20(Gyro)
    DS1631(Temperature sensor)
    SSD1306(LCD controller)
    ADT7410(Temperature sensor)
    MCP4725(D/A Converter)
    PCF8574(IO Expander)
    KT903(AM/FM receiver)
    BH1750FVI(Ambient Light Sensor)
    Wii-nunchaku
    MCP3425(A/D Converter)
    MPU6050(Accerelometer/Gyro)
  • caskazcaskaz Posts: 957
    edited 2014-04-14 19:55
    Operated normal characterLCD as i2c-LCD by using IOexpander(PCF8574).
  • caskazcaskaz Posts: 957
    edited 2014-04-18 01:59
    Modified LED Infinity H/W.
    Needing level-shift(3.3V->5V).
                                      5V
                                       |
                    3.3V            10kohm
                      |                |
    P0 --- Source   Gate   Drain -----------Din(WS2812B) 
                 MOSFET(2N7000)
    
  • caskazcaskaz Posts: 957
    edited 2014-04-19 07:08
    Updated to PropForth_i2c_20140419.
    AN10441 is level-shift document of i2c.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-04-19 07:45
    caskaz wrote: »
    Updated to PropForth_i2c_20140419.
    AN10441 is level-shift document of i2c.

    That is a good explanation

    Arigato Sensei

    I will add these to the I2C wiki page
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-04-22 18:31
    OK, I added all (I think) of Caskaz's recent I2C work to the wiki pages.


    MAN! Caskaz makes a TON of stuff! And I thought I was tough because I read Sal's BMP085 and hacked it!

    So, If anybody gets a chance, PLEASE look at these pages (everything above SERIAL) and PLEASE check the links.

    I think a couple of the links are wrong, my eyes are getting wonky because I was working too fast. Please let me know if you find any bad ones and I will fix them.
  • caskazcaskaz Posts: 957
    edited 2014-04-27 08:35
    I wrote i2c_LCD's code by using MCP23017(16bits I/O Expander).
    This can also adjust contrast and connect 3 switch.
    I will make summary about 3type character_LCD(PCF4725,MCP23017,74HC164) later.
  • prof_brainoprof_braino Posts: 4,313
    edited 2014-04-27 10:55
    This weeks' call:

    Schedule for starting month

    Finish instruction to set up wireless access point
    Start public version of PF6 documentation
    PF6 build and test OS will be on Windows for the time being

    We anticpate tthe PF6 documnation is going to take a while. All other nifty incidental projects will be kept separate. IR communications, mesh network, scaled integer kalman filter, and selection of large demo are still on the list, but are secondary.
Sign In or Register to comment.