Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Reputation Activity

  1. Like
    PTB reacted to Rei Vilo in I²C Check-List   
    Check the usual suspects:
    Is the I²C bus initialised? Wire.begin(); Does the I²C device run at 3.3V? Otherwise, use a logic-level converter.
    Are pull-ups installed? Try 10, 4.7 or 2.2 kΩ for the SDA and SCL lines.
    In case the LaunchPad provides multiple I²C ports, is the correct port selected? Try 
    Wire.setModule(0); // or other port number Wire.begin(); Still nothing? Use a logic analyser to trace the signals on the I²C port.

    (To be continued...)
  2. Like
    PTB reacted to altineller in Mini-M4 TivaC   
    Has anyone seen the : Mini-M4 for Tiva-C
    Would it be safe to assume that it could run energia?
  3. Like
    PTB reacted to greeeg in GPS logger for a local Beagle club   
    This project was put on hold over the holidays. It's always a busy time, plus the club doesn't hold meets over summer.
    But I have just completed another 10 units. More of the same, but thought you guys might enjoy some more photos.

    I couldn't get the same batteries as the last batch, which were 650mAh, these have much smaller 220mAh. But this still provides about 4 hours of run time.
    The uBlox GPS modules are a huge improvement. Even without the SAW filter in the RF path and the sub-optimal PCB size compared to the antenna. These find more GPS satellites faster than the G.top modules, plus they also use glonass which doubles the visible satellites.
  4. Like
    PTB reacted to Fmilburn in Fuel Tank MKII Battery BoosterPack Plug-In Module   
    Good catch - I think you are right
  5. Like
    PTB got a reaction from Fmilburn in Fuel Tank MKII Battery BoosterPack Plug-In Module   
    I think TI have a typo in their documentation. One doc says 12000 and another says 1200.
    I'm betting on 1200
  6. Like
    PTB reacted to Rei Vilo in [Energia Library] LCD_screen Library Suite   
    The LCD_screen Special Edition for Energia supports new screens!
    The Pervasive Display e-Paper EPD Extension Kit Gen 2 BoosterPack hosts screens based on e-ink technology, perfect for ultra-low power projects.

    To install the library, just use the Libraries Manager featured by Energia 1.6.10E18. 

  7. Like
    PTB reacted to greeeg in GPS logger for a local Beagle club   
    Polyurethane parts have come up nicely.

    Main advantages of this method of rapid prototyping
    Part cost is low these use about $0.05 of polyurethane resin. Parts can easily be coloured using dyes. (as demonstrated) Very little time needed for each cast (about 5 minutes) 1-2 Hour cure time 1-1 replica to original part. Of course you need to invest the time and money to make the silicone molds to begin with. So for a single part 3d printing is often the preferred approach.

    The parts are a perfect fit over the button and LEDs.

  8. Like
    PTB got a reaction from lilyhack in Configuring GPIO as an ADC at TM4C123GXL   
    I got a lot of help for stellaris in this thread here. Very similar to Tiva
    Might be of use
  9. Like
    PTB reacted to bluehash in Have feedback for TI? Please share here.   
    Hello All,
    Here is some feedback. Apologies on the late reply.
    There was approximately an hour to field our questions/requests.
    On a few questions that were not asked, I have an open channel with them.

    - This was my primary focus. I am aware most of you don't care much about it, but there are alot of users coming in from the Arduino world to the TI family.
    A couple of others in the room and myself were concerned about the future of Energia and its support. We were assured that more was being done and we'll know
    more in some time.

    Higher RAM chips on the value line
    - Let them know that higher RAM on the chips shipped with the Launchpad is invaluable. It keeps us from implementing the cooler stuff.

    USB on MSP on the lower end devices
    - Let them know about it. They are aware about the lack of this feature. From my view, low power and USB do not go hand in hand... it may be a challenge.
    EDIT: Just wanted to confirm... that it is my view that USB and low power may be a challenge... not TI's.. They may already have something in the works. I don't know.

    MSP432 DMA
    - Feedback given. They will take this back to the chip architechts.

    - This is becoming mainstream in a lot of their devices and is quite popular. I left this discussion off.

    TI EStore International Shipping
    I was not able to get to the person incharge of the Store. But they do know of the issue. I'll push this again.

    Energy Trace requests
    - The team would like a list. I'd suggest someone start with a list in the forum and build up on it.

    CCS bugs
    - A list would be good. I'll have someone from TI look at it and post it in their CCS forums.

    MSP software
    - More improvements

    - Something new/revamped.
    Other comments. They were interested in how we used the TI site, the forums and social media. They were looking for feedback on their datasheets, block diagrams,examples and newsletters. There was also a chat with the calculator group and the TI-Innovator system.

    If you have an issue with TI's tools, the best place to put them is in their E2E forums. If it is a long list/request list post it here.
  10. Like
    PTB got a reaction from OzGrant in SD card 8GB format problem   
    I think there is some kind of limit. I found anything over 4gb got pretty funky. I tried a few different cards and they all misbehaved. I know the cards are good as they all work fine in my dslr camera.
    I'm not using sd.lib but rather petitfs.
    Same problem though.
    I found some 4gb cards on sale and bought a handful.
  11. Like
    PTB reacted to greeeg in GPS logger for a local Beagle club   
    Realized I haven't done much work on these for alittle while. It's very close to a working product, so yesterday I devoted to push it over the line.
    Dissembling a my first battery allowed me to clone the wire lengths, a small amount of kapton is used to insulate the terminals and PCB

    A snug fit. If another version is to be made I think I'd make some small alterations to the PCB shape.

    Grey unit, showing the LED windows and custom molded button.

    I'm bad at performing regular commits. I'm trying to improve this. I hadn't even committed the final PCB layout, even though I ordered the PCBs back in Feb.

    Stuff that got done
    HardwareBatteries (protection + wiring) FirmwareProper KML formatting (my initial implementation put too many errors while the gps was acquiring a fix) Button hold for power on/off Better debug output Two open files (FatFS makes this super easy) Increasing GPS data rate to 2Hz (10Hz is possible with these modules, but overkill for this application I think) Enabling long file names(FatFS makes this super easy) Enabling folders on the SD card(FatFS makes this super easy) Extracting time from GPS, using it to name saved logs and file creation date/time Making LED feedback more consistent Timezone correction from GPS UT timezone Fixed LEDs blinking for USB chargers with no USB communication  
    It's been working well on my bench. I'll have to take it out for more real world testing over the next week.
    I haven't done anything with the USB bootloader concept. This will only happen if I get enough time.
  12. Like
    PTB reacted to lilyhack in Where is Energia Library in Mac   
    Thought lm4f is for stellaris, not for TIVA. But looks like it has all the libraries. Thanks for the help.
  13. Like
    PTB got a reaction from lilyhack in Where is Energia Library in Mac   
    I think it is under LM4F
  14. Like
    PTB reacted to terjeio in Algorithm based stepper motor ramping for Tiva C   
    I have started the process of porting my CO2-laser driver from MSP430 to Tiva C and I am switching to an algorithm based approach for the stepper acceleration/deceleration. As part of testing I have (re)written an implementation of David Austins algorithm as documented here:
    The test code may be of use for others so here it is.
    PA7: direction
    PF1: step pulse
    From what I can glean from my scope the interrupt handler executes in about 2us - so can be used for high pulse rates.
    // // Real-time stepper motor ramp control for TIVA C // // Based on article & code by David Austin // // Terje Io, 2016-03-08 // #include <stdint.h> #include <stdbool.h> #include "inc/hw_gpio.h" #include "inc/hw_types.h" #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "driverlib/sysctl.h" #include "driverlib/pin_map.h" #include "driverlib/gpio.h" #include "driverlib/pwm.h" #define STATE_IDLE 0 #define STATE_ACCEL 1 #define STATE_RUN 2 #define STATE_DECEL 3 #define STEPPULSE 50 #define PWMINT PWM_INT_CNT_AD | PWM_INT_CNT_BD typedef struct motor { uint8_t busy; // state machine state int16_t position; // absolute step number uint16_t move; // total steps to move uint16_t midpt; // midpoint of move bool odd; // true if odd number of steps int8_t pos_inc; // position increment uint16_t delay; // integer delay count uint16_t first_delay; // integer delay count uint16_t min_delay; // integer delay count uint16_t step_no; // progress of move uint16_t step_down; // start of down-ramp uint32_t c32; // 24.8 fixed point delay count int16_t denom; // 4.n+1 in ramp algo } motor; struct motor motor1; void pwm_1_2_int_handler (void); void motor_init (motor *motor) { motor->position = 0; motor->busy = STATE_IDLE; motor->pos_inc = 0; motor->first_delay = 30000; motor->min_delay = 1400; } bool motor_calc (motor *motor, int16_t pos_new) { if (pos_new < motor->position) { // get direction & #steps motor->move = motor->position - pos_new; motor->pos_inc = -1; } else if (pos_new != motor->position) { motor->move = pos_new - motor->position; motor->pos_inc = 1; } else return false; // already there motor->odd = motor->move & 0x0001; motor->midpt = (motor->move - (motor->odd ? 1 : 0)) >> 1; motor->step_no = 0; // step counter motor->delay = motor->first_delay; motor->c32 = ((uint32_t)motor->delay) << 8; // keep delay in 24.8 fixed-point format for ramp calcs motor->denom = 1; // 4.n + 1, n = 0 return motor->busy = motor->move == 1 ? STATE_DECEL : STATE_ACCEL; } void motor1_run (int16_t pos_new) { if(motor_calc(&motor1, pos_new)) { GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_7, motor1.pos_inc > 0 ? GPIO_PIN_7 : 0); PWMGenPeriodSet(PWM1_BASE, PWM_GEN_2, motor1.delay); PWMPulseWidthSet(PWM1_BASE, PWM_OUT_5, STEPPULSE); PWMGenEnable(PWM1_BASE, PWM_GEN_2); } } void mpu_init (void) { SysCtlPWMClockSet(SYSCTL_PWMDIV_8); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM1); SysCtlDelay(26); // wait for modules to start GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_6 | GPIO_PIN_7); GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_7, GPIO_STRENGTH_12MA, GPIO_PIN_TYPE_STD); // PWMClockSet(PWM1_BASE, PWM_SYSCLK_DIV_64); GPIOPinTypePWM(GPIO_PORTF_BASE, GPIO_PIN_1); GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_12MA, GPIO_PIN_TYPE_STD); GPIOPinConfigure(GPIO_PF1_M1PWM5); PWMGenConfigure(PWM1_BASE, PWM_GEN_2, PWM_GEN_MODE_DOWN | PWM_GEN_MODE_GEN_SYNC_LOCAL); PWMOutputState(PWM1_BASE, PWM_OUT_5_BIT, true); PWMGenIntRegister(PWM1_BASE, PWM_GEN_2, pwm_1_2_int_handler); PWMGenIntClear(PWM1_BASE, PWM_GEN_2, PWMINT); PWMGenIntTrigEnable(PWM1_BASE, PWM_GEN_2, PWMINT); PWMIntEnable(PWM1_BASE, PWM_INT_GEN_2); } void main(void) { SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); motor_init(&motor1); mpu_init(); while (true) { // repeat 5 revs forward & back motor1_run(8000); // 1.8 deg/step and 8 microsteps while (motor1.busy); motor1_run(0); while (motor1.busy); } } void pwm_1_2_int_handler (void) { PWMGenIntClear(PWM1_BASE, PWM_GEN_2, PWMINT); motor1.position += motor1.pos_inc; motor1.step_no++; switch (motor1.busy) { case STATE_ACCEL: if (motor1.step_no == motor1.midpt) { motor1.busy = motor1.odd ? STATE_RUN : STATE_DECEL; motor1.step_down = motor1.step_no + 1; motor1.denom -= 2; } else { motor1.denom += 4; motor1.c32 -= (motor1.c32 << 1) / motor1.denom; // ramp algorithm motor1.delay = (motor1.c32 + 128) >> 8; // round 24.8 format -> int16 if (motor1.delay <= motor1.min_delay) { // go to constant speed? motor1.denom -= 6; motor1.busy = STATE_RUN; motor1.step_down = motor1.move - motor1.step_no; motor1.delay = motor1.min_delay; } PWMGenPeriodSet(PWM1_BASE, PWM_GEN_2, motor1.delay); PWMPulseWidthSet(PWM1_BASE, PWM_OUT_5, STEPPULSE); } break; case STATE_RUN: if (motor1.step_no == motor1.step_down) motor1.busy = STATE_DECEL; break; case STATE_DECEL: if (motor1.denom < 2) // done? motor1.busy = STATE_IDLE; else { motor1.c32 += (motor1.c32 << 1) / motor1.denom; // ramp algorithm motor1.delay = (motor1.c32 - 128) >> 8; // round 24.8 format -> int16 motor1.denom -= 4; PWMGenPeriodSet(PWM1_BASE, PWM_GEN_2, motor1.delay); PWMPulseWidthSet(PWM1_BASE, PWM_OUT_5, STEPPULSE); } break; } // switch (busy) if(!motor1.busy) PWMGenDisable(PWM1_BASE, PWM_GEN_2); }
  15. Like
    PTB reacted to froggy in TM4c1294 - Program over Ethernet with LM Flash Utility   
    Thanks for the starting point there. The calls to Swupdate don't seem to be working since the LM Flash Utility still hangs on the "trying to connect". Starting the MAC/PHY with the "SoftwareUpdateInit()" function, my callback function is called as expected. I get the same behavior with the Energia UDP/Ethernet libraries where I can see the "magic update packet". 
    I suspect that the issue is that I don't have the proper Ethernet Bootloader installed, but can't seem to find any information on how to install/build it. Any idea how I can install the Ethernet Bootloader/include it in my projects?
    Comment block from SoftwareUpdateBegin():
    //! Passes control to the bootloader and initiates a remote software update
    //! over Ethernet.
    //! This function passes control to the bootloader and initiates an update of
    //! the main application firmware image via BOOTP across Ethernet.  This
    //! function may only be used on parts supporting Ethernet and in cases where
    //! the Ethernet boot loader is in use alongside the main application image.
    //! It must not be called in interrupt context.
    //! Applications wishing to make use of this function must be built to
    //! operate with the bootloader.  If this function is called on a system
    //! which does not include the bootloader, the results are unpredictable.
    //! \note It is not safe to call this function from within the callback
    //! provided on the initial call to SoftwareUpdateInit().  The application
    //! must use the callback to signal a pending update (assuming the update is to
    //! be permitted) to some other code running in a non-interrupt context.
    //! \return Never returns.
    I got the Ethernet update to work by making a few modifications to the SwUpdate.c file. For whatever reason (I didn't really bother looking into this part...), the defines aren't set to use the ROM based Ethernet bootloader in the SoftwareUpdateBegin function, and the ROM Ethernet functions aren't defined in Energia 017's "rom.h" file. The latest version of TivaWare (TivaWare_C_Series- does provide the proper definitions for it. I simply added the necessary defines to call the ROM_UpdateEMAC and forced the code to use that, instead of the flash bootloader based update system. It also seems to be important that the MAC address set by the Ethernet library matches the MAC address programmed into user registers (by default this is what is on the sticker on the board).
    Anyways, I've attached a working Energia example with support for updates over Ethernet. 
  16. Like
    PTB got a reaction from spirilis in 43oh wins TI Community Highlight Award   
    Nice ! Well deserved man.
    This site is the reason I got into TI Microcontrollers. You've created a great environment that has attracted some really knowledgeable and helpful folks. (And thanks again to all those guys by the way).
    Congratulations on the award.
  17. Like
    PTB reacted to Fred in 43oh wins TI Community Highlight Award   
    Too shy to tell us yourself, @@bluehash? Well, I'll have to do it then!
    It looks like 43oh has won TI's Community Highlight Award. Definitely well deserved. This place has always been a great source of help and inspiration. Probably the reason why I use TI stuff rather than anyone else's.
    Well done.
  18. Like
    PTB reacted to Fmilburn in [Energia Library] TLC5615 DAC   
    This is a simple Energia library for the Texas Instrument TLC5615 Digital to Analog Converter, a 10 bit ADC.  The TLC5615 library is located here.
    I recently took an online course based on the FR6989 and the C language that used this chip and thought I would implement in Energia.  Here is a screenshot from my oscilloscope of the Energia version generating a sawtooth wave.

  19. Like
    PTB reacted to bluehash in To all our French members and visitors - Our thoughts are with you   
    I was coming back from work(~6:30pm) yesterday(Friday)..looking forward for the weekend when I heard about the attacks on NPR. I know a few members are from Framce and alot of silent ones too.
    Makes me upset that this is for nothing. Our thoughts are with you, your family, friends and country.
    If you need any assistance from the community, please post here or PM me.
  20. Like
    PTB reacted to chicken in [POTM] dAISy - A Simple AIS Receiver   
    It's official, dAISy graduated from my 2nd bedroom to a professional assembly line. My Tindie store should soon be stocked for longer than 3 days in a row.

    I did go with a local contract manufacturer. NRE for the first batch is a lot higher than the Chinese competition, but it's manageable when amortized over 100 boards. And it includes a free tour of the factory
    In other news, I received PCBs for the next revision of the dAISy BoosterPack. I use these as prototyping platform to experiment with the SiLabs Si4362 radio. I also added a few pads for the TX pin to make it usable as a Si446x breakout board.

    PM me if you want one of the spares of the BoosterPack. I will give away the unpopulated PCBs for free, $10 for the populated PCB. Free shipping in the US, $5 outside the US.
  21. Like
    PTB reacted to Rei Vilo in IoT with LaunchPad CC3200: Exploring the Existing Services   
    Some of the services I've reviewed so far offer private cloud and storage on a local server.
    Check out the Private IoT with Blynk on Local Server.
    The server runs on a BeagleBone. Data acquisition is carried out by a LaunchPad TM4C123  with a Grove BoosterPack and a set of sensors, and the WiFi connection goes through the CC3100 WiFi BoosterPack.+ BoosterPack
    A 100% TI solution!
  22. Like
    PTB reacted to terjeio in What are you doing right now..?   
    Making my first PCB using KiCAD, switching over from ZenitPCB. Next I am going make a prototype board with a LQFP-64 (TM4C123), will push my homemade PCB "printer" to its limits (its inherent resolution is 1200dpi).

    PCB "printer" in action - a blu-ray laser (100mW), two steppers controlled by MSP430 and main rendering program written i C# for Windows.


    First PCB authored in KiCad - laminator is no good, and I am having some problems with dust. I am using Riston film - maybe better to use presensitized boards...
  23. Like
    PTB reacted to terjeio in What are you doing right now..?   
    Preamp / Multimedia-center featuring:
    Raspberry Pi running OSMC, will add a MSP430 for power control.
    My preamp modified for I2C control - I2C implemented in a MSP430G2553.
    My RC5 remote, based on a MSP430G2312.
    Tiva C as main controller: 320x240 LCD panel, old stepper motor as volume control & navigator (via QEI)
    Keystone DAB (on a Monkeyboard) - awaiting delivery, I assume this will be the most tricky part to program for.

    Previous design in background, new design in front :

  24. Like
    PTB reacted to zeke in One Wire Controller booster   
    I made some time tonight to put together two boards for my One Wire datalogger system.
    They are the data sources for the Hydra datalogger board so I figured that I should come up with silly names for them. 
    Since the Hydra has eight ports, I decided that it needed some tentacles to complete the metaphor.
    I present to you The Tentacle TH and DS.
    The Tentacle TH uses the MAX31850K to read K type thermocouples.
    The Tentacle DS uses the DS18B20 in SOIC8 and TO92 flavours. It also has a three pin terminal block for off board sensors.

  25. Like
    PTB reacted to bluehash in Sweetzpot - A SensorTag App That Analyzes Your Rows   
    This one is pretty neat. Two SensorTags are placed on the ends of each oar. The tags connect to the phone(iOS, in this case) via an application that displays:
    Your position-phone GPS Weather conditions - wind, velocity etc.. SensorTag accelerometer, gyroscope and magnetometer values.  
    The fusion of all the captured data allows us to compute blade inclination, oar angle, at the start and finish of a stroke giving us the length of a stroke, and height of oar. We aim to compute the position of the oar in space at any given time through a sensor fusion algorithm.

    Via - TI E2E Wireless Blog.
  • Create New...