The display driver is now in master and enabled for BBBMINI by default. If you want to use a display with your BBBMINI just buy a SSD1306 128 x 64 OLED display (about 6$). The display should have four pins GND, VCC, SDA, SCL.

Connect the display to the BBBMINI:

  • Display GND to P15 GND
  • Display VCC to P15 3.3V
  • Display SCL to P15 SCL
  • Display SDA to P15 SDA

Have fun with your display and BBBMINI.

Views: 1194

Replies to This Discussion

Wonderful !

I will try to do this after my BBB is working.

Mirko,

I find this so useful on my BBBmini that I would like to use it with my Pixhawk based MR.

You note that the display driver is "enabled for BBBmini by default" does that mean we can enable it for other platforms somehow? Just because it is in master doesn't mean it is in a stable build yet, correct? How do we know when features added to master migrate down to stable release builds, commented in the release notes?

In the same idea the second IMU branch of yours will not have the display code correct, it is just for you testing the multi-IMU's?

Will the multi-IMU be moved to master soon?

Thanks

MFK

Hi Mike,

if you run Ardupilot on your pixhawk it should be usable, too. You may add "Display_SSD1306_I2C Display;" here https://github.com/diydrones/ardupilot/blob/master/libraries/AP_Not... (I do not have a Pixhawk, I can not try it).

You have to check out the stable branch on github if it is in or not. I hope to get most bbbmini changes into ArduCopter 3.4, then I can recommend to fly bbbmini with stable. Now I recommend to fly with master. Big changes are listed in the release notes.

The dual IMU branch is my master_dual branch. Display is in and enabled.

Dual IMU can not be in master now, because then single IMU will not run when dual IMU is enabled. There must be add some auto detection (signle / dual IMU) in the code, then it could be merged into master.

Regards

Mirko

 

OK I'll try compiling it for Pixhawk.

Mirko I really appreciate what you have done. Could you send me a pm with a paypal address so I can buy you a "beer"?

Cheers

Mirko, I gave this a try and was unable to get it to work. Your link indicates to edit the AP_Notify.cpp line 45 and add "Display_SSD1306_I2C Display. I complied it and loaded onto a Pixhawk and it did not display.

I then looked at the code and it looks like maybe it belongs after line 56? Like this:

#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
    Display_SSD1306_I2C Display;
    AP_BoardLED boardled;
    ToshibaLED_PX4 toshibaled;
    ToneAlarm_PX4 tonealarm;

I compiled that and got no display.

Is there a parameter that must be set to get it to function?

Thanks

PS I just noticed that maybe it needs to be lower case d is Display?

I am getting closer modified AP_Notify.cpp  as:

#if CONFIG_HAL_BOARD == HAL_BOARD_PX4

    Display_SSD1306_I2C display;
    AP_BoardLED boardled;
    ToshibaLED_PX4 toshibaled;
    ToneAlarm_PX4 tonealarm;
#if OREOLED_ENABLED
    OreoLED_PX4 oreoled;
    NotifyDevice *AP_Notify::_devices[] = {&display &boardled, &toshibaled, &tonealarm, &oreoled};
#else
    NotifyDevice *AP_Notify::_devices[] = {&display &boardled, &toshibaled, &tonealarm};
#endif

I get output on the display but the data is rolling, the picture doesn't show it but the screen is constatlt rolling like an old tv with the vertical sync off:

Mirko,

I'd really like to get this working for Pixhawk. I think a lot of people would benefit. Can you give me another clue where I might look in the code. It looks like a timing issue with the display. Does the BBB do something at a different rate than the Pixhawk or is there another spot in the code where the display must be enabled?

Thanks

Hi Mike,

#if CONFIG_HAL_BOARD == HAL_BOARD_PX4

    Display_SSD1306_I2C display;
    AP_BoardLED boardled;
    ToshibaLED_PX4 toshibaled;
    ToneAlarm_PX4 tonealarm;
#if OREOLED_ENABLED
    OreoLED_PX4 oreoled;
    NotifyDevice *AP_Notify::_devices[] = {&display &boardled, &toshibaled, &tonealarm, &oreoled};
#else
    NotifyDevice *AP_Notify::_devices[] = {&display &boardled, &toshibaled, &tonealarm};
#endif

Make sure you do not miss the comma it has to be ...&display, &boardled...

Hi Mike,

maybe you need pullup resistors to SDA and SCL. I can not debug that issue, because I do not own a Pixhawk.

Mirko

Good catch. Hopefully it was just a typo when i wrote the post. I'll check. I do get it do drive the display, which did not happen before I modified those lines, but as in the picture it rolls. I'll check and see if there is a voltage level problem.

Thanks very much.

Hi, 

to properly work i2c on my BBB Mini - to use an external compass and i2c display I had to use 2 resistors of 1k as pull-up, and is working 

It has been a while and I can't remember if I was running the display at 5v or 3.3v but that is definitely worth checking.

BTW I used a 3.3v GPS/Compass module and it worked super right out of the box.

RSS

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service