In a large bowl, whisk together soy sauce, honey, olive oil, garlic, ginger, black pepper, and red pepper flakes (if using).
Add the chicken cubes to the marinade, ensuring they are well coated. Cover and refrigerate for at least 30 minutes or up to 2 hours for more flavor.
Preheat your grill to medium-high heat. If using wooden skewers, soak them in water for 30 minutes to prevent burning.
Thread the marinated chicken, pineapple chunks, bell pepper pieces, and onion wedges onto the skewers, alternating between ingredients.
Place the skewers on the grill and cook for 10-15 minutes, turning occasionally, until the chicken is cooked through and has nice grill marks.
Remove from the grill and let rest for a few minutes before serving.