Start with the beans, since they will take awhile to simmer from dried to tender. In a large pot or Dutch-oven, add a pound of rinsed and sorted dry pinto beans, ½ a medium white onion, 2 cloves of smashed garlic, 1-2 sprigs fresh epazote (or a bay leaf), and 1 teaspoon kosher salt.
Add enough water to cover the beans plus 2-3-inches, about 10 cups. Bring to a boil, cover, and lower to a simmer. Let the beans and aromatics simmer for 1 ½ - 2 hours until the beans are tender.
After an hour or so, start cooking the fillings. Bring a large skillet to medium heat and add 5 slices of chopped bacon. Cook for 10-15 minutes until it is as crispy as you prefer. Remove the bacon with a slotted spoon and place in a paper towel lined plate and remove excess bacon grease if needed until 1-2 tablespoons remain.
Add 1 cup cubed ham to the skillet (and 4-5 sliced hot dogs if using) and cook for 2-3 minutes. Remove and set them aside with the bacon.0
Now add 6-ounces Mexican chorizo and break it up with a wooden spoon. After breaking it up, add the other ½ a medium white onion (diced) and cook for 7-8 minutes, until the chorizo is cooked through and the onion is softened. Add the diced 1-2 jalapeno or serrano and sauté for another 2-3 minutes.
Add 2 cloves minced garlic, 1 chipotle with some adobo, ½ teaspoon ground cumin, ½ teaspoon smoked paprika, ½ teaspoon Mexican oregano, ½ teaspoon ground black pepper, and ½ teaspoon ground ancho. Break up the chipotle and cook for another 1-2 minutes, until the garlic is fragrant. Finally, add 3 diced Roma tomatoes. Continue cooking until the tomatoes break down and release their juices, about 7-8 minutes longer.
Now return the cooked bacon and ham (and hot dogs) and stir to combine.
Once the beans are tender, remove the epazote sprigs (or bay leaf), onion, and garlic. About 6 cups of liquid should remain. If less than that, add some more water or chicken stock. Add the meat and vegetable mixture to the beans and stir in ½ cup chopped fresh cilantro (and 8oz chopped chicharrónes if using). Taste and salt if needed, then allow everything to simmer for about 10-15 minutes so the flavors can meld.
Ladel portions into bowls, garnish with a bit more chopped cilantro and serve.
1) Pinto Beans – There’s no need to presoak the beans here. Simmering slowly takes a little longer but adds lots of flavor to the liquid. If you’re in a hurry, you can replace the dry beans with 4 15oz cans of pinto beans. Drain and rinse them, then add to charro mixture with 6 cups of chicken stock or vegetable broth.2) Epazote – A popular herb in Mexico, this can be difficult to find fresh outside of Latin or international markets. It has a pungent, earthy and herbal flavor. If you can’t find some locally or wish to omit it, you can replace it with a bay leaf instead.3) Chorizo – Mexican chorizo is uncooked and can be found in refrigerated sections of a lot of grocery stores these days. It can be sold as sausages or ground, pork or beef. Use the pork one and remove it from the casing if buying as a sausage. Spanish chorizo is usually found near deli departments and is typical sold unrefrigerated since it is a cured sausage-style meat. Use the Mexican version.4) Mexican Oregano – Mexican oregano has a different flavor from regular dried oregano, but if you can’t find it the best substitute would be marjoram or just use regular oregano. You can also find it in Latin and international stores, or you can buy it online for a reasonable price.5) Cooking Methods – For other cooking methods like an Instant Pot or slow cooker, read the Variations section in the post above.